Method and system for constraint-based traffic flow optimisation system

ABSTRACT

A method of calculating traffic values in a communications network ( 1 ), the communications network comprising a plurality of nodes ( 2,4 ), the nodes being connected to one another by links ( 24 ), the method comprising: (a) obtaining traffic data measurements ( 102 ) through said nodes and/or links in an initial scenario as input data; (b) deriving a traffic flow model for a modified scenario using a plurality of constraints describing the interdependency of said initial to said modified scenario ( 116 ); and (c) calculating values and/or upper and lower bounds of traffic values for said modified scenario from said traffic flow model using said input data ( 118 ).

This application is a 371 of co-pending PCT application PCT/GB03/00669filed Feb. 17, 2003, which was published in English under PCT Article21(2) on Sep. 12, 2003, which claims the benefit of GB Application No.0204914.6 filed Mar. 1, 2002. These applications are incorporated hereinby reference in their entireties.

This invention relates to traffic flow optimisation systems. Moreparticularly, but not exclusively, it relates to methods of calculatingdata traffic flows in a communications network.

BACKGROUND

Today, large communications networks are serviced by more than 30,000Internet Service Providers (ISPs) across the world, predominantlyoperating on a commercial basis as a service provider. The servicesrange from the mass-marketing of simple access products toservice-intensive operations that provide specialized service levels tomore localized internet markets. The present application mainly concernsISPs providing networks, referred to more generally as network serviceproviders.

With networks playing an ever increasing role in today's electroniceconomy, an efficient management of the networks and an efficientplanning of future modifications is advantageous.

With the rapid growth of network usage, network service providers arecurrently facing ever increasing expectations from their customers tothe quality of service (minimum delay, maximum reliability, highbandwidth for data transfer rates, low costs, etc). The main task is tosatisfy the quality of service parameters while maximising the return ofinvestment, i.e. to ensure an efficient utilisation of the availablebandwidth in addition, but there are issues relating to future sales,strategic planning and business development. One concerns Service LevelAgreements (SLAs) with their customers.

An SLA is a service contract between a network service provider and asubscriber, guaranteeing a particular service's quality characteristics.SLAs usually focus on network availability and data-deliveryreliability. Violations of an SLA by a service provider may result in aprorated service rate for the next billing period for the subscriber.

Thus it is important for a network service provider to know whether itcan issue an SLA to another customer without violating any existingSLAs. Here it needs to estimate what is the largest new workload thatthe network can handle with respect to network availability anddata-delivery reliability.

In strategic planning, the objective is to investigate how to revise theexisting network topology (and connection points to external nodes) suchthat the resource utilization is minimized and more balanced. Theproblem is to minimize the resource utilization by determining whichbackbone links are overloaded, and to add links to the network toredistribute the load. For a given workload, the question is where toadd the links in the network and what is the required bandwidth of eachbackbone link such that the capacity of the new network topology isgreater, i.e. can deal with a larger load. Another question concernswhich node should be used to connect a new customer to the network. Thisshould be the one which minimises resource utilisation and expandscapacity in the most cost effective way.

There are several tools available for planning and optimisingcommunications networks. They are usually based on a discrete eventsimulation of the network. For this, a typical scenario of end-to-endloads must be provided as input by the user. Starting from thisscenario, the tool simulates the transport of the traffic through thenetwork, observing link utilization overload and other events.

End to end traffic data are usually obtained by obtaining probes orrouter-based information. Such a method is expensive to implement andusually only a part of the whole network is equipped with datacollection points. The data collection process has the additionaldisadvantage that it adds to the traffic congestion of the network.

Such traffic data, if available, may then be used in network modellingor a network simulation. However, most simulations are not based on realdata, but only on estimates. The simulation is then used for networkplanning or optimisation tools. The user usually defines a scenariowhich is then tested using the simulation tool.

Another approach is described in the applicant's patent application GB 0028 848, filed on 27 Nov. 2000 (agent reference J42831GB), which ishereby incorporated by reference. In the approach real link traffic dataare used to derive end-to-end traffic load intervals. Link traffic dataare collected during a limited time period. Thus a “snapshot” of thedata traffic is obtained. Data collection may be repeated at certaintimes or periodically. The results of this process are subsequently usedin a traffic flow optimisation system to estimate traffic loads in thegiven scenario. This approach has the disadvantage that it is difficultto derive meaningful intervals for the end-to-end load in theoptimisation process, especially if multiple modifications are to becontinued to give a consistent estimate in traffic flow. Anotherdisadvantage of the method is that it is difficult to work from aplurality of traffic flow intervals in the optimisation or planningprocess.

SUMMARY OF THE INVENTION

It is an aim of the present invention to alleviate some of thedisadvantages mentioned above and to provide a traffic flow optimisationsystem based on measured traffic data which does not require completeend-to-end traffic loads.

It is a further aim of the present invention to calculate traffic valuesin a communications network for a modified scenario using measuredtraffic data of the initial network.

According to one aspect of the present invention, there is provided amethod of calculating traffic values in a communications network, thecommunications network comprising a plurality of nodes, the nodes beingconnected to one another by links, the method comprising: (a) obtainingtraffic data measurements through said nodes and/or links in an initialscenario as input data; (b) deriving a traffic flow model for a modifiedscenario, using a plurality of constraints describing theinterdependency of said initial to said modified scenario; and (c)calculating values and/or upper and lower bounds of traffic values forsaid modified scenario from said traffic flow model using said inputdata.

In this way traffic values can be calculated for a modified network (ormodified scenario) using measured traffic data of the initial,unmodified network (or scenario).

By deriving constraints from the interdependency of the initial andmodified network, the exact traffic data are used in the calculation forthe modified scenario if they are not affected by the modification. Inthis way either exact values or relatively tight bounds can be derivedfor the desired traffic values in a modified network.

Preferably, the measured traffic data are corrected if inconsistenciesare detected. In this way more accurate and reliable traffic values canbe derived.

According to another aspect of the present invention, there is provideda method of calculating traffic values in a communications network, thecommunications network comprising a plurality of nodes, the nodes beingconnected to one another by links, the method comprising: (a) obtainingdata traffic measurements through said nodes and/or links in an initialscenario as input data; (b) considering a modified scenario; (c)defining one or more solution variables for said modified scenario; (d)determining constraints between traffic flows through said links andnodes in the initial and the modified scenarios; (e) deriving a trafficflow model using said input data and said relations for calculating saidsolution variables.

In this way traffic values for modified scenario, like for example inforecasting, network planning or resilience analysis, can be calculatedusing measured traffic data of the initial, unmodified network andconstraints based on the initial network, like network topology andnetwork behaviour of the initial network.

Further aspects and advantages of the invention will be appreciated, byexample only, from the following description and accompanying drawings,wherein

FIG. 1 illustrates a simplified example of an Internet Protocol (IP)network in which the present invention can be implemented;

FIG. 2 illustrates the relationship of a network and a networkmanagement system, into which the present invention may be implemented;

FIGS. 3A to 3J illustrate in a simplified way the method used tocalculate the traffic values in a modified scenario according to thepresent invention;

FIG. 4 is a flow chart diagram illustrating the individual steps of atraffic flow optimiser according to embodiments of the presentinvention.

FIG. 5 is a flow chart diagram illustrating individual steps in atraffic flow optimiser according to one further embodiment of thepresent invention.

FIG. 1 illustrates a simplified example of an Internet Protocol (IP)network. Generally, such a network consists of nodes and links. Nodes inan IP network may either be internal or external. An internal noderepresents a location in the network where traffic data is directedthrough the network. It can be of two types: a device node 2 denoting anetwork device such as for example a router or a network node 4 denotinga local network (e.g. Ethernet, FDDI ring). An external node 6represents a connection to the IP network from other networks.

A link is a directed arc between two nodes. Depending upon the nature ofthe two nodes, network links take different denominations. There are twomain types of links, the backbone and access links.

A backbone link 24 is a link between two internal nodes; at least one ofthem must be a device node. Indeed, every link in an IP network canconnect either two device nodes or one device node and one network node.A connection to a device node is realized via a physical port of thedevice. If the device is a router, then the port is calledrouter-interface 22. A connection to a network node is realised via avirtual port of the network.

An access link is a link between a device node and an external node.Access links include peering lines 18, uplink lines 20 and customerlines 16.

A PoP (point of presence) is the set of all devices co-located in thesame place.

The link traffic is the volume of data transported through a link and ismeasured in mbps (mega bits per seconds). The bandwidth of a directedlink defines the maximum capacity of traffic that can be transportedthrough this link at any one time.

In this embodiment, we refer to IP-based networks. In an IP network thedevice nodes are represented by routers; we assume that any two nodesare directly connected by at most one link, and every external node isdirectly connected to one internal device node.

A path from a source to a destination node is a sequence of linked nodesbetween the source and destination nodes. A route is a path betweenend-to-end internal nodes of a network that follows a given routingprotocol.

A traffic load is the load of data traffic that goes through the networkbetween two external nodes independently of the path taken over a giventime interval.

A traffic flow between external nodes is the traffic load on onespecific route between these nodes over a time interval.

A router is an interconnection between network interfaces. It isresponsible for the packet forwarding between these interfaces. It alsoperforms some local network management tasks and participates in theoperations of the routing protocol (it acts at layer 3, also called thenetwork protocol layer). The packet forwarding can be defined accordingto a routing algorithm or from a set of static routes pre-defined in therouting table.

A routing algorithm generates available routes for transporting datatraffic between any two nodes of a given network.

In the following, embodiments of the present invention will be describedwhich are based on the OSPF (Open Shortest Path First) routing algorithmfor IP-based networks. This algorithm determines optimal routes betweentwo network nodes based on the “shortest path” algorithm. The metrics toderive the shortest path are fixed for each link, and hence the routingcost is computed by a static procedure. The lowest routing costdetermines the optimal route. If there is more than one optimal path,then all optimal paths are solutions (best routes) and the traffic loadbetween the two end-nodes is divided equally among all the best routes.

FIG. 2 illustrates the relationship of the network and a networkmanagement system 60 in which the present invention may be implemented.Network management system 60 performs the network management functionsfor network 50. The network management system communicates with thenetwork using a network management protocol, such as the Simple NetworkManagement Protocol (SNMP). The network management system 60 includes aprocessor 62 and a memory 64 and may comprise a commercially availableserver computer. A computer program performing the calculation of datatraffic flow is stored is memory 64 and can be executed by processor 62.

The traffic flow optimisation system may comprise a network planner, aresilience analyser and/or a forecaster. These elements may either beimplemented in the network management system or in a connected computersystem.

A network planner identifies potential network bottlenecks using thetraffic flow results, suggests a set of best possible changes to thenetwork topology and reports on the analysis of the effects of suchchanges to the network and services. Such changes may includetopological changes or methods of traffic engineering like modificationof the routing metrics or the implementation of tunnels, i.e. methods ofrouting traffic in one particular node in different directions. Such atunnel may for example be used to route traffic coming into the nodefrom a first and a second node into one direction, and traffic cominginto the node from a third node into another direction

The resilience analyser identifies which of the existing links in thenetwork will be overloaded in the event that certain links (sets oflinks) fail.

The forecaster identifies the impact on the network of rising trafficvolume.

Input data for the network optimisation system are network data andtraffic data.

Network data contains information about the network topology, as forexample information about the nodes, routers, links, the routerinterfaces, the bandwidth of each link or the parameters of the routingprotocol used. Such a routing protocol may for example be the OSPF (OpenShortest Path First) protocol. Alternatively, other routing protocolslike ISIS (Intermediate System to Intermediate System) and EIGRP(Enhanced Interior Gateway Routing Protocol) may be used. In addition,information about the transport layer may be used, such as the TCPtransport protocol or the UDP transport protocol. The list of staticroutes may also be included. Network data may also include informationabout the end-to-end paths as for example all optimal routes.

Traffic data are measured directly from the network considered. Suitablenetwork elements have to be selected from which information is providedand in which measurements of traffic data are made. The measuredquantities may for example be the flow between two nodes, the flowbetween two groups of interfaces for two nodes, the traffic entering orleaving a link.

In the embodiments described, traffic data are provided as snapshots ofcurrent traffic on the network. Traffic data are collected for a certaintime interval and are collected on a regular basis. According to oneembodiment, traffic data are collected every 5 minutes and the user maychoose the interval over which data is collected. A time interval of,for example, 20 to 25 minutes is suitable. Measurements relating to theaverage flow rate of traffic data passing through every link are takenand stored. The average flow rate of traffic data is the total trafficvolume divided by the time interval. For example if a total traffic of150 Mbit have been counted between T1 and T2, the average data is150/(T2−T1) Mbps. This approach does not show high peaks in the traffic.But it is sufficient to determine the load being carried through anetwork.

According to the embodiments described herein, traffic data is collectedeither directly from the network devices or from tables stored in thenetwork management system. The network management protocol such as theSNMP provides access to the incoming and outgoing traffic at a giventime at each router and each router interface.

The general concept of the traffic flow optimiser will now be explainedwith help of a simplified model.

FIG. 3A shows a simplified network including network nodes A to G. Thesnapshot traffic measurement shows a link traffic between node F and Eof 20, between G and E of 35 and soon.

FIG. 3B shows intervals of the flow variable (i.e. end-to-end flow)which can be derived from the measured traffic data as is described inpatent application GB 0 028 848. For example the traffic flow FA can bedetermined to be in the range 0 to 10, then flow GB is between 20 and35.

In a resilience analysis we are now interested in the traffic on theindividual links if one link fails. FIGS. 3C and D illustrate a linkfailure between nodes E and C. All traffic between nodes E and C has nowto be re-routed. In the example the traffic goes via node D.

In the example we are now especially interested in the traffic between Eand D. The important question in a resilience analysis is whether thelink considered, here the link between nodes E and D can handle thetotal amount of traffic which now, after the link failure, flows overthe link.

FIG. 3B illustrates that in the normal case only the traffic from F to Dand G to D uses the link ED. In case of the link failure all traffic onthe routes FA, FB, FD, GA, GB and GD goes over this link.

Thus we want to know what the total volume for all these flows is. Wecan derive the line traffic in the modified network (i.e. where the linkfailed) from the original, un-modified network, as is illustrated inFIG. 3E.

In this case we can use two constraints from the initial network.Looking at the traffic between nodes F and E, we know that all trafficFA, FB and FD goes over this link and from the measurement we know thatthe total traffic on this link is 20. Looking at the link between nodesG and E, we know that traffic GA, GB and GD goes over the link and thatthe total traffic on this link is 35. Thus we can derive a value for thetraffic FA+FB+FD+GA+GB+GD, which yields 20+35=55. In this example we canuse a second constraint, from which we also get a value forFA+FB+FD+GA+GB+GD. Looking at the traffic on links EC and ED also yieldsa value of 55.

Thus we can estimate the utilisation of the individual links after linkfailure. The values are shown in FIG. 3F.

In a second example we illustrate how we can derive traffic data for aplanned topology change. We again start from initial network as shown inFIG. 3A.

Referring to FIG. 3G, the question is now how the traffic data would bemodified if we add a new link between nodes E and B. We can again derivethe values for the modified network by using constraints derived fromthe initial network. In FIG. 3H the resulting utilisation of the linksis shown. We can derive that the traffic on a new link EB would be 40.

In a third simplified example we show that we can not always deriveexact value for the traffic in which we are interested, but that wemight only be able to derive an upper and lower bound for certaintraffic values.

Referring now to FIG. 31, the question is how the traffic data wouldlook like if we add a new link between nodes G and B. In this example wehave not enough information or constraints to derive an exact value forthe traffic on the new link GB. As already shown with reference to FIG.3D, we are able to derive an interval for the link traffic between GB,which now tells us that the flow is between 20 and 35. With thisknowledge and the measurements of the traffic in the initial network, wecan also derive link traffic intervals for the links EG, CE and BC, asgiven in FIG. 3J.

The traffic flow optimiser in embodiments of the present invention usesmeasured traffic data from an initial network to derive traffic valuesfor a modified scenario. The modified scenario might for example be amodified topology of the network or a modified routing procedure likethe introduction of primary tunnels. These modified scenarios are forexample used for network planning and resilience analysis. Othermodified scenarios include a modified traffic load in the network, likefor forecasting traffic.

The traffic values for the modified scenario are calculated using thesame principles as explained above in the simplified example withreference to FIG. 3. In the example, the link traffic values for themodified links are expressed as a function of the measured traffic datain the initial network to derive a value for traffic over a certainlink. More generally, relationships derived from the initial scenarioare used to constrain the traffic values of the modified scenario. Inthe embodiments described below, we set up a traffic flow model or aconstraint model is defined for calculating traffic in the modifiedscenario. Because generally the exact amount of traffic cannot bedetermined, we calculate an upper and lower bound of data traffic.

In the constraint model, the flow terms contain typically severalnode-to-node flows. Any link traffic which is not affected by amodification corresponds to the link traffic of that link in the initialunmodified network and is thus known accurately.

From the calculated flow data (i.e. values and/or intervals) we derivethe utilisation of individual links in the modified network.

In the following we list some of the relationships used in theconstraint model as examples:

-   -   the sum of all flows starting in a node in equal to the sum of        all external traffic entering the node;    -   the sum of all flows ending in a node in equal to the sum of all        external traffic having the node;    -   the sum of all flow through a link is equal to the total traffic        on the link.

Other constraints will be given below, where we describe differentembodiments of the traffic flow model in more detail. We also refer tothe description of the constraint model for the traffic flow analysis inthen applicant's patent application GB 0 028 848, filed on 27 Nov. 2000(agent reference J42831GB). The set of constraints described therein canalternatively be used in the traffic flow model of the presentinvention.

The output variables of the traffic flow optimizer are the flows whichare affected by the imposed modification. These variables are referredto as solution variables in the following. Objective functions aredefined using linear programming methods to calculate the bounds for allsolution variables.

The traffic flow optimiser can be used to analyse the results of a wholeset of modifications. This is for example useful for a resilienceanalysis of a communications network where the service provider mightwant to ensure that the network has enough capacities to deal with thefailure of any such link.

One possibility to handle such multiple modifications is of course totreat each modification individually and to get results for the trafficvalues for each modification individually. However, the traffic flowoptimiser according to one embodiment of the present invention alsoallows handling a set of modifications simultaneously. In this case theoptimiser performs the routing process for each modification considered(if necessary) and produces the solution variables for eachmodification.

After all modification scenarios have been considered, the optimiserproduces a list of solution variables, which is then used in the trafficflow model. In this list all solution variables are only listed once, soredundancies are removed. The set of modifications are then handledsimultaneously in the traffic flow model. Possible outputs are a set ofconsistent values for all solution variables, which gives a solution toall constraints considered. Alternatively, or in addition, themodifications can also be handled one by one in the model, the output ofthe TFM is then a set of solution variable values or intervals for allmodification considered.

The traffic flow optimiser also allows to handle a plurality of measureddata sets. In the planning of a network change or in a resilienceanalysis, it is often desired to take into account multiple traffic datasets. In this way we do not restrict ourselves to the use of oneparticular data set which was collected at one particular time intervalin the network considered. Instead, multiple data sets collected atdifferent times may be used in one analysis. This is important as thetraffic may considerably differ at different times. The results obtainedin this way are thus much more consistent and meaningful. In case of aresilience analysis, if an utilisation problem is detected for the somenetwork failure in all data sets, i.e. to all times considered in theanalysis, then this points out a much more serious problem compared to asituation where the problem occurs in one data set only.

We analyse the multiple data sets independently and then combine theresults. In this way we keep all information about correlation betweenthe different traffic values. However, this method requires running ofthe traffic flow model for each data set separately, which may be veryresource-consuming, especially if we consider a great number of datasets. Alternatively, we combine the multiple data sets into one mergeddata set and run the traffic flow optimizer based on this merged dataset. In this case we loose the correlation between the individualtraffic data measurements. This has to be taken into account whensetting up the constraints for the traffic flow model.

The measured traffic data may be inconsistent. As such inconsistenciesaffect the TFM, the data are corrected in embodiments of the presentinvention.

A reason for inconsistencies might for example be that some network datais lost (e.g. the collected data from a router is not transportedthrough the network). Other reasons might be that the networkconfiguration is wrong (e.g. the counter for the size of traffic on agiven interface does not represent the size of that traffic) or that thenetwork data from different router interfaces (in case of arouter-router directed link) is not collected at the same time andresults in slight differences of size.

The data are corrected using the measured raw data and constraintsderived from the topology of the network and routing protocols. Thefollowing constraints may for example be used for error correction:

-   -   for each route, the total traffic coming in is equal to the        total traffic going out;    -   for each link between the interface j of router i and the        interface l of router k, then traffic data on the interface j        from the router i is equal to the traffic data on the interface        l directed to the router k.

If the constraints are fulfilled, i.e. if no error is detected, theinput values are not corrected and the process continues. If an error isdetected, then the error is minimised using the constraints and aminimisation procedure. Error variables are introduced, for examplevariables specifying the corrected traffic volume for every single nodeor an overall error correction. An objective function is built from theconstraining relationships using linear programming.

Output of the correction procedure are the error variables. Using thesevariables, the measured data can be corrected such that they areconsistent for the application of a constraint model.

The procedure of error correction is similar to those described inpatent application GB 0 028 848. We refer to this document for furtherdetails.

Before the individual steps in a traffic flow optimiser will be set outin more detail reference is made to the flow chart diagram of FIG. 4.FIG. 4 summaries the steps of a traffic flow optimiser according to oneembodiment of the present invention. Input to the optimiser is themeasured traffic data, the topology of the network and the behaviour ofthe network, such as the results of performing a routing procedure(steps 102 and 104). The traffic data are corrected in step 106 suchthat a consistent data set is obtained. In step 108 a modified scenariois considered. The modified scenario may for example include a scenariofor planning modified networks (110), for analysing resilience of apresent or future network (112) or for forecasting traffic load (114).The topology of the initial and the modified network, if appropriate, isused to derive constraints for setting up a traffic flow model (116).The traffic flow model runs to determine intervals of a set of trafficflow solution variables in the modified network and/or one consistentsolution for the set of modifications considered. In step 118 the outputof TFM, i.e. the solution variable intervals, are analysed. The trafficflow optimiser may for example be used for selecting a suitablemodification or set of modifications from the traffic flow intervalscalculated for the different modifications considered. For theresilience analysis, the solution analyser may for example transform thesolution variables into utilisation values.

The principle set out above can then be used in optimisation procedureslike for example forecasting, resilience analysis, or network planning.

Forecasting

For forecasting traffic values in a given communications network, thenetwork topology is not changed. However, the traffic load of thenetwork is modified. Two different types of modification can beimplemented. The first modification is a growth of the differentend-to-end flows proportional to their original traffic. The secondmodification allows for additional traffic which can be specified toflow between certain nodes. However, the additional traffic should beallocated to nodes which have enough capacities for extending thetraffic load (see the description for network planning below).

The traffic flow model is then set up such that for each node to nodeflow the correct growth factor is used and any additional flows areadded. Output of the forecasting process are then modified trafficvalues (generally intervals of the link traffic) for which we canforecast the utilisation of the network if the traffic load growths. Theconstraints can be aggregated for groups of flows, e.g. for all flowsbetween two PoPs. Often, we will obtain more accurate results this way.

Resilience Analysis

In order to study resilience of the network, the communications networkis modified. Individual or multiple network elements, such as linksbetween network nodes are removed in the analysis and the impact of such“failures” on the network are studied. Node failures are simulated byremoving all links connecting to the corresponding node. For simulatinga router node failure, the links inside a PoP and also the linksconnecting to another PoP can be removed. We can also treat anycombination of link failures as a single failure cases, for example toanalyze the effect of a fibre cut.

After the network modification, the routing procedure is performed inthe modified network. The solution variables to be determined aredefined. They correspond to the link traffic values in the modifiednetwork. Subsequently the TFM is set up using the constraints derivedfrom the network topology and behaviour and the measured and correctedtraffic data. As a result of the TFM upper and lower bounds arecalculated for the desired solution variables and the utilisation of thederived links can be calculated. The optimiser further returns theamount of any un-routed traffic.

In such a resilience analysis a whole set of modifications to thenetwork can be studied as described above. The information of theindividual modification can be given as a list of network modifications,and the traffic flow optimiser runs through all given modificationsautomatically, giving a list of the desired network element utilisationand the un-routed traffic for each modification.

Network Planning

With the network planner the impact of new network elements, such as newlinks, can be studied.

The user can either specify to which node and/or interface of a node thenew links should be connected. Alternatively, the user can specify onenode of each PoP as the extension point, and the tool automaticallyselects the best point of connection for the new links.

Similar to the resilience analysis, routing is performed in the modifiednetwork, the TFM is set up and intervals are calculated for the desiredsolution variables. Again a list of selected modifications can bestudied, either by handling each modification individually, or bycombining multiple modifications.

In other embodiments, more specific queries can be answered by thetraffic flow planner, the forecaster or the resilience analyser (110,112 or 114 of FIG. 4). In this case the solution analyser 118 (or partof it) is incorporated into the traffic flow planner, the forecaster orthe resilience analyser. Each of elements 110, 112, 114 can for exampledefine a specific set of queries which is then calculated in the TFMusing the complete set of constraints as described above.

In this case the step of calculating variables the utilisation ofindividual links are performed in the optimiser elements 110, 112 or114. The solution variables are then no longer link traffic values, butvariables like for example the utilisation of a link (in percent), theoverall utilisation of the modified network (in percent), the maximalutilisation of any link in the network, the overloading of a link (inpercent), the total volume of overloaded traffic or the volume oftraffic in the original network that cannot be routed in the modifiednetwork.

As a consequence of using these variables the constraints used in theTFM are no longer linear. Such constraints are for example that theamount of overload for a link is the percentage of utilisation exceedingthe utilisation limit or that the maximal utilisation is the maximum ofall link utilisations in the network. We use linear approximation forthese non-linear constraints.

The forecasting element 112 or planning element 110 may for exampledirectly answer the following questions:

-   -   What is the utilisation of each link?    -   What is the overall utilisation of the network?    -   Are there any links that are overloaded?

The variables derived in such a case are the minimal and maximalutilisation of any link in the network (in percent), the overallutilisation of the network and the total amount of overloading in thenetwork.

The queries of the resilience analyses may be specified as for example:

-   -   For each change, what is the utilisation of each link and which        flows are lost, i.e. no longer transported in the network?    -   For each change, are there overloaded links and which flows are        lost?

In a resilient planner, the query may for example be formulated as:

-   -   For each change, is the resulting network resilient and what is        the utilisation of each link?

The traffic flow optimiser is also usefull in traffic engineering, forexample for obtaining information about possible placements of primarytunnels.

Referring now to FIG. 5, we describe how a traffic flow optimiserhandles multiple network modifications like for example in a resilienceanalysis. In this embodiment, the traffic flow optimiser includes amodification generator 212. The generator 212 is implemented insoftware. It automatically generates a set of proposed modifications,like for example deleting every link in a network or every link in aparticular set of links in a resilience analysis. Alternatively, theuser may specify a set of modifications for a particular analysis. Theset of modifications are then communicated to the planning or resilienceelement via an application programming interface (API). The optimiserelement then considers a first modification of the network (step 214) asrequested and routing is performed on the modified network in step 216.In step 218 the optimiser element performs flow aggregation and therequired flow terms or solution variables are defined. In step 220 it ischecked whether more modifications are to be carried out. If the answeris yes, then steps 214 to 220 are repeated, until no furthermodifications are required in step 220. If the answer is no, then thesystem continues with step 222.

In step 222 the optimiser element merges the required flow terms into alist. In this process any duplicates of flow terms are removed, suchthat a list of unique flow terms is provided to the TFM (step 224). Inaddition to this list, the TFM is also provided with information of thenetwork topology and behaviour of the initial network and the measuredtraffic data (steps 202 to 206). Now the traffic flow model is set up byderiving constraints and building objection functions as describedabove. The output of the TFM is an upper and a lower bound for each ofthe solution queries. Alternatively, or in addition, one solution forall the solution variables can be calculated, which simultaneouslysatisfies all given constraints.

The resulting intervals or values are transformed into utilisationvalues of the links and/or values of the modified network in step 226.From these data the user or the system may select appropriate networkmodifications (step 228). If the TFM calculates directly solutionvariables like the utilisation variables and overflow values, themodification selector uses the values or intervals provided from theTFM. The modification generator of step 212 provides the necessaryinformation for the selection of suitable or test modifications. If thetraffic flow optimiser is used for forecasting traffic the definition ofthe modified scenario is given in step 230. As the network itself is notmodified in this case, steps 214 and 216 are not performed and themodified traffic load is directly communicated to the optimiser in step218. The modified traffic load is given as a percentage of the currenttraffic load.

In the following we describe different embodiments of the constraintmodel for the traffic flow optimiser in more detail.

As a first example, we give an example of a simple constraint model. Inthis simplified model, network nodes and routers are treated in the sameway. External connections are not modelling explicitly. Only the totaltraffic volume into and out of a node to all external interfaces istaken into account.

In a second example, we give a further, more complete, example of aconstraint model. We refer to this example as the full constraint model.In this case we distinguish between network nodes and routers. Nodeinterfaces can be classified as interfaces of different groups if theybelong to different customers.

In a third example, the full constraint model described in the secondexample is presented including error correction.

Subsequently the constraint model is described for the traffic flowoptimiser according to one embodiment of the present invention. Thisdescription is based on the third example, i.e. the full constraintmodel including error correction. We present descriptions of thevariables, constraints, approximations to non-linear constraints andsolution variables used in this embodiment. Specific queries for aforecaster, a resilience analysis, a planner and also a resilienceplanner are given.

In a further embodiment of the present invention, we describe a trafficflow model, which is especially useful for large networks. In this modelwe introduce additional approximations. As a result, the overall numberof variables to be calculated is reduced. The remaining variables areapproximated in this model.

Simple Constraint Model

3.1 Constants

We start by defining the constants that we use to describe the network,its routing and the traffic loads in the network.

Definition 3.1 Nodes is the set of all nodes in the network. The numberof nodes is denoted by n. Indices i, j, k, k_(x), l and l_(x) refer tonodes.

Definition 3.2 Pops is the set of all PoPs in the network. The number ofPoPs is denoted by r. Indices p and q refer to PoPs. Each PoP is a setof nodes, and each node belongs to exactly one PoP.

Definition 3.3 The function pop: i

p maps the node index i to a PoP index p.

Definition 3.4 Lines is the set of all node pairs kl so that a directedline exists between nodes k and l in the network. The number of lines inthe network is denoted by m.

Definition 3.5 The constant t_(kl) is the consistent traffic volume onthe directed line between from node k to node l.

Definition 3.6 The constant c_(i) ^(in) is the sum of all consistenttraffic volumes for external traffic into node i.

Definition 3.7 The constant c_(i) ^(out) is the sum of all consistenttraffic volumes for external traffic out of node i.

Definition 3.8 The constant R_(kl) is the set of all node pairs ij sothat the flow from node i to node j is (partially) routed through linekl.

Definition 3.9 The constant r_(ij) ^(kl) is a number between 0 and 1which describes which fraction of the flow from node i to node j isrouted through line kl. A value 0 indicates that the flow is not routedthrough line kl.

Definition 3.10 The constant p_(ij) ^(pq) is either 0 or 1 and indicateswhether the flow from node i to node j is a flow from PoP p to PoP q,i.e. i ε p and j ε q.

Lemma 3.1 We have that

${\forall i},{{j \in {{Nodes}\text{:}\mspace{14mu}{\sum\limits_{\substack{p \in {Pops} \\ q \in {Pops}}}p_{ij}^{pq}}}} = 1}$holds for all nodes i and j.3.2 Variables

We now describe the variables of our model. The first set, the flowvariables, are used to define flows in the network consistently. It isthe second set, the solution variables, that we are really interestedin. These solution variables are defined as sums of flow variables.

Definition 3.11 The non-negative variable f_(ij) describes the flow fromnode i to node j. These variables are called flow variables.

There are n² variables of this type.

Definition 3.12 The non-negative variable s_(pq) describes the flow fromPoP p to PoP q. These variables are called solution variables.

There are r² variables of this type.

3.3 Constraints

We now list the constraints used in our minimal model. The names of theconstraints are taken from the “RiskWise II Constraint Model” document.

Constraint 3.1 (flow_external(2)) The constraint states that the sum ofall flows starting in a node is equal to the sum of all external trafficentering the node.

${\forall{i \in {{Nodes}\text{:}\mspace{14mu}{\sum\limits_{j\; \in \;{Nodes}}f_{ij}}}}} = c_{i}^{in}$

We have n constraints of this type.

Constraint 3.2 (flow_external(1)) The constraint states that the sum ofall flows ending in a node is equal to the sum of all external trafficleaving the node.

${\forall{j\; \in {{Nodes}\text{:}\mspace{14mu}{\sum\limits_{i \in \;{Nodes}}f_{ij}}}}} = c_{j}^{out}$

We have n constraints of this type.

Constraint 3.3 (traffic_contribution_equal) The constraint states thatthe sum of all flows through a line is equal to the traffic on the line.

${\forall{{kl} \in {{Lines}\text{:}\mspace{14mu}{\sum\limits_{{ij} \in \; R_{kl}}{r_{ij}^{kl}*f_{ij}}}}}} = t_{kl}$

We have m constraints of this type.

Constraint 3.4 (solution_term(1)) The constraint states that the flowbetween two PoPs is equal to the sum of all flows between nodes whichbelong to the first and second PoP.

${\forall p},{{q \in {{Pops}\text{:}\mspace{14mu} s_{pq}}} = {\sum\limits_{\substack{i \in p \\ j \in q}}f_{ij}}}$

We have r² constraints of this type.

3.4 Matrix

¹The matrix form of the problem is defined by the set of equations

${M*\begin{pmatrix}{\left. \begin{matrix}f_{11} \\f_{12} \\\vdots \\f_{nn}\end{matrix} \right\} n^{2}} \\{\left. \begin{matrix}s_{11} \\s_{12} \\\vdots \\s_{rr}\end{matrix} \right\} r^{2}}\end{pmatrix}} = \begin{pmatrix}{\left. \begin{matrix}c_{1}^{in} \\\vdots \\c_{n}^{in}\end{matrix} \right\} n} \\{\left. \begin{matrix}c_{1}^{out} \\\vdots \\c_{n}^{out}\end{matrix} \right\} n} \\{\left. \begin{matrix}t_{k_{1}l_{1}} \\\vdots \\t_{k_{m}l_{m}}\end{matrix} \right\} m} \\{\left. \begin{matrix}0 \\\vdots \\0\end{matrix} \right\} r^{2}}\end{pmatrix}$¹This section can be skipped on a first reading.

The matrix M is defined as

$\quad\begin{pmatrix}\begin{matrix}1 & 1 & \ldots & 1 \\0 & 0 & \ldots & 0 \\\vdots & \vdots & \ldots & \vdots \\0 & 0 & \ldots & 0\end{matrix} & \ldots & \begin{matrix}0 & 0 & \ldots & 0 \\0 & 0 & \ldots & 0 \\\vdots & \vdots & \ldots & \vdots \\1 & 1 & \ldots & 1\end{matrix} & 0 \\\begin{matrix}1 & 0 & \ldots & 0 \\0 & 1 & \ldots & 0 \\\vdots & \vdots & \ddots & \vdots \\0 & 0 & \ldots & 1\end{matrix} & \ldots & \begin{matrix}1 & 0 & \ldots & 0 \\0 & 1 & \ldots & 0 \\\vdots & \vdots & \ddots & \vdots \\0 & 0 & \ldots & 1\end{matrix} & 0 \\\begin{matrix}r_{11}^{k_{1}l_{1}} & r_{12}^{k_{1}l_{1}} & \ldots & r_{1n}^{k_{1}l_{1}} \\r_{11}^{k_{2}l_{2}} & r_{12}^{k_{2}l_{2}} & \ldots & r_{1n}^{k_{2}l_{2}} \\\vdots & \vdots & \ddots & \vdots \\r_{11}^{k_{m}l_{m}} & r_{12}^{k_{m}l_{m}} & \ldots & r_{1n}^{k_{m}l_{m}}\end{matrix} & \ldots & \begin{matrix}r_{n\; 1}^{k_{1}l_{1}} & r_{n\; 2}^{k_{1}l_{1}} & \ldots & r_{nn}^{k_{1}l_{1}} \\r_{n\; 1}^{k_{2}l_{2}} & r_{n\; 2}^{k_{2}l_{2}} & \ldots & r_{nn}^{k_{2}l_{2}} \\\vdots & \vdots & \ddots & \vdots \\r_{n\; 1}^{k_{m}l_{m}} & r_{n\; 2}^{k_{m}l_{m}} & \ldots & r_{nn}^{k_{m}l_{m}}\end{matrix} & 0 \\\begin{matrix}p_{11}^{11} & p_{12}^{11} & \ldots & p_{1n}^{11} \\p_{11}^{12} & p_{12}^{12} & \ldots & p_{1n}^{12} \\\vdots & \vdots & \ddots & \vdots \\p_{11}^{rr} & p_{12}^{rr} & \ldots & p_{1n}^{rr}\end{matrix} & \ldots & \begin{matrix}p_{n\; 1}^{11} & p_{n\; 2}^{11} & \ldots & p_{nn}^{11} \\p_{n\; 1}^{12} & p_{n\; 2}^{12} & \ldots & p_{nn}^{12} \\\vdots & \vdots & \ddots & \vdots \\p_{n\; 1}^{rr} & p_{n\; 2}^{rr} & \ldots & p_{nn}^{rr}\end{matrix} & \begin{matrix}{- 1} & 0 & \ldots & 0 \\0 & {- 1} & \ldots & 0 \\\vdots & \vdots & \ddots & \vdots \\0 & 0 & \ldots & {- 1}\end{matrix}\end{pmatrix}$

The constraints arc arranged in the sequence

-   -   1. flow_external(2)    -   2. flow_external(1)    -   3. traffic_contribution_equal    -   4. solution_term(1)

The matrix has 2n+m+r² lines and n²+r² columns.

-   -   Remember that only one p_(ij) ^(pq) in each column has the value        1, all others are 0. This means that 100/r² (CWG: 11) percent of        the p_(ij) ^(pq) values are non zero.    -   Experiments with the CWG network have shown that most lines        carry at least n flows, with some carrying 1000 flows. This        means that roughly 5-10% of the r_(ij) ^(hl) values are        non-zero.    -   To highlight the structure of the matrix, we can also show it as        the combination of multiple smaller matrices.

$\quad\begin{pmatrix}{ONE}_{1} & {ONE}_{2} & \ldots & {ONE}_{n} & 0 \\I & I & \ldots & I & 0 \\R_{1} & R_{2} & \ldots & R_{n} & 0 \\P_{1} & P_{2} & \ldots & P_{n} & {- I}\end{pmatrix}$with the smaller matrices

${ONE}_{x} = \begin{pmatrix}0 & 0 & \ldots & 0 \\\vdots & \vdots & \ldots & \vdots \\0 & 0 & \ldots & 0 \\1 & 1 & \ldots & 1 \\0 & 0 & \ldots & 0 \\\vdots & \vdots & \ldots & \vdots \\0 & 0 & \ldots & 0\end{pmatrix}$where the line of ones is line x. The size of this matrix is n×n.

$I = \begin{pmatrix}1 & 0 & \ldots & 0 \\0 & 1 & \ldots & 0 \\\vdots & \vdots & \ddots & \vdots \\0 & 0 & \ldots & 1\end{pmatrix}$ $R_{x} = \begin{pmatrix}r_{x\; 1}^{k_{1}l_{1}} & r_{x\; 2}^{k_{1}l_{1}} & \ldots & r_{xn}^{k_{1}l_{1}} \\r_{x\; 1}^{k_{2}l_{2}} & r_{x\; 2}^{k_{2}l_{2}} & \ldots & r_{xn}^{k_{2}l_{2}} \\\vdots & \vdots & \ddots & \vdots \\r_{x\; 1}^{k_{m}l_{m}} & r_{x\; 2}^{k_{m}l_{m}} & \ldots & r_{xn}^{k_{m}l_{m}}\end{pmatrix}$

The size of this matrix is m×n.

$P_{x} = \begin{pmatrix}p_{x\; 1}^{11} & p_{x\; 2}^{11} & \ldots & p_{xn}^{11} \\p_{x\; 1}^{12} & p_{x\; 2}^{12} & \ldots & p_{xn}^{12} \\\vdots & \vdots & ⋰ & \vdots \\p_{x\; 1}^{rr} & p_{x\; 2}^{rr} & \ldots & p_{xn}^{rr}\end{pmatrix}$

The size of this matrix is r²×n.

Lemma 3.2 We find that P_(x)=P_(y) if pop(x)=pop(y).

3.5 Objective Functions

As result of the flow analysis we want to have lower and upper boundsfor all solution variables. This implies the objective functionsmin s_(pq)andmax s_(pq)which are run independently for all pairs of PoPs p and q. This meansthat we have to run 2*r² optimization queries. We can reduce this valueby checking if a particular solution variable s_(pq) has a value 0 inone of the other optimization runs. If that happens, we do not have tocheck it for minimum value.Full Constraint Model

The main difference between the simple constraint model as set out aboveand the full constraint model as described in the following is that wedistinguish between the different types of external interfaces. We alsoallow a separation of customers interfaces into groups 1 and 2. If theconstraint model is used to perform an analysis of the traffic betweenPoPs, group 1 will contain all customer interfaces of a node and group 2will be empty. For other analyses, some interfaces belong to group 1 andothers to group 2.

4.1 Constants

We start by defining the constants that we use to describe the network,its routing and the traffic loads in the network.

Definition 4.1 Nodes is the set of all nodes in the network. The numberof nodes is denoted by n. Indices i, j, k, k_(x), l and l_(x) refer tonodes.

Definition 4.2 Routers is the set of all routers in the network. Thenumber of nodes is denoted by n_(r).

Definition 4.3 Nets is the set of all network nodes in the network. Thenumber of nodes is denoted by n_(n).

Lemma 4.1 We haveNodes=Routers ∪ NetsandRouters ∩ Nets=∅

Definition 4.4 Pops is the set of all PoPs in the network. The number ofPoPs is denoted by r. Indices p and q refer to PoPs. Each PoP is a set,of nodes, and each node belongs to exactly on PoP.

Definition 4.5 The function pop: i

p maps the node index i to a PoP index p.

Definition 4.6 Lines is the set of all node pairs kl so that a directedline exists between nodes k and l in the network. The number of lines inthe network is denoted by m.

Definition 4.7 The value o denotes the number of interconnection linesin the network.

Definition 4.8 The constant h_(i) denotes the number of interface groupsfound at node i. The value h_(i) is equal to the number ofinterconnection lines attached to node i plus 2.

Lemma 4.2 The total number of groups in the network is

${\sum\limits_{i \in {Nodes}}h_{i}} = {{2n} + o}$

Definition 4.9 The constant t_(kl) is the consistent traffic volume onthe directed line from node k to node l.

Definition 4.10 The constant c_(i) ^(in) is the sum of all consistenttraffic volumes for external traffic into node i.

Definition 4.11 The constant c_(ia) ^(in) is the sum of all consistenttraffic volumes for external traffic which belongs to group a into nodei.

Definition 4.12 The constant c_(i) ^(out) is the sum of all consistenttraffic volumes for external traffic out of node i.

Definition 4.13 The constant c_(ia) ^(out) is the sum of all consistenttraffic volumes for external traffic which belongs to group a out ofnode i.

Lemma 4.3 We have that

${\forall{i \in {{Nodes}\text{:}\mspace{14mu} c_{i}^{in}}}} = {\sum\limits_{1 \leq a \leq h_{i}}{c_{ia}^{in}\mspace{14mu}{and}}}$${\forall{i \in {{Nodes}\text{:}\mspace{14mu} c_{i}^{out}}}} = {\sum\limits_{1 \leq a \leq h_{i}}c_{ia}^{out}}$

Definition 4.14 The constant R_(kl) is the set of all node pairs ij sothat the flow from node i to node j is (partially) routed through linekl.

Definition 4.15 The constant r_(ij) ^(kl) is a number between 0 and 1which describes which fraction of the flow between nodes i and j isrouted through line kl. A value 0 indicates that the flow is not routedthrough line kl.

Definition 4.16 The constant p_(ij) ^(pq) is either 0 or 1 and indicateswhether the flow between nodes i and j is a flow between PoPs p and q,i.e. i ε p and j ε q.

Lemma 4.4 We have that

${\forall i},{{j \in {{Nodes}\text{:}\mspace{14mu}{\sum\limits_{\substack{p \in {Pops} \\ q \in {Pops}}}p_{ij}^{pq}}}} = 1}$holds for all nodes i and j.4.2 Variables

We now describe the variables of our model. The first set, the flowvariables, are used to define flows in the network consistently. Thesecond set splits the flows in even more details, so that we can attachmore detailed constraints. But it is the last set, the solutionvariables, that we are really interested in. These solution variablesare defined as sums of flow variables.

Definition 4.17 The non-negative variable f_(ij) describes the flow fromnode i to node j. These variables are called flow variables.

-   -   There are n² variables of this type.

Definition 4.18 The non-negative variable g_(ij) ^(ab) describes theflow from group a of node i to group b of node j. These variables arecalled flow group variables.

Lemma 4.5 There are 4n²+4on+o² variables g_(ij) ^(ab).

Definition 4.19 The non-negative variable s_(pq) describes the flow fromPoP p to PoP q. These variables are called solution variables.

-   -   There are r² variables of this type.        4.3 Constraints

We now list the constraints used in our model. The names of theconstraints are taken from the “RiskWise II Constraint Model” document.

Constraint 4.1 (flow_external(2)) The constraint states that the sum ofall flows starting in a node is equal to the sum of all external trafficentering the node.

${\forall{i \in {{Nodes}\text{:}\mspace{14mu}{\sum\limits_{j \in {Nodes}}f_{ij}}}}} = c_{i}^{in}$

We have n constraints of this type.

Constraint 4.2 (flow_external(1)) The constraint states that the sum ofall flows ending in a node is equal to the sum of all external trafficleaving the node.

${\forall{j \in {{Nodes}\text{:}\mspace{14mu}{\sum\limits_{i \in {Nodes}}f_{ij}}}}} = c_{j}^{out}$

We have n constraints of this type.

Constraint 4.3 (traffic_contribution_equal) The constraint states thatthe sum of all flows through a line is equal to the traffic on the line.

${\forall{{kl} \in {{Lines}\text{:}\mspace{14mu}{\sum\limits_{{ij} \in R_{kl}}{T_{ij}^{kl}*f_{ij}}}}}} = t_{kl}$

We have m constraints of this type.

Constraint 4.4 (solution_term(1)) The constraint states that the flowbetween two PoPs is equal to the sum of all flows between nodes whichbelong to the first and second PoP.

${\forall p},{{q \in {{Pops}\text{:}\mspace{14mu} s_{pq}}} = {\sum\limits_{\overset{i \in p}{j \in q}}f_{ij}}}$

We have r² constraints of this type.

Constraint 4.5 (flow_f_g_sum) The total flow between two nodes is equal

to the sum of the flows between the interface groups at the nodes.

${\forall{i \in {Nodes}}},{{j \in {{Nodes}\text{:}\mspace{14mu} f_{ij}}} = {\sum\limits_{\substack{1 \leq a \leq h_{i} \\ 1 \leq b \leq h_{j}}}g_{ij}^{ab}}}$

There are n² constraints of this type.

Constraint 4.6 (flow_g_limit a) The sum of all flows from an interfacegroup at a node is equal to the consistent traffic into this group.

${\forall{i \in {Nodes}}},{{1 \leq a \leq {h_{i}:\mspace{14mu} c_{ia}^{in}}} = {\sum\limits_{\substack{j \in {Nodes} \\ 1 \leq b \leq h_{j}}}g_{ij}^{ab}}}$

There are 2n+o constraints of this type.

Constraint 4.7 (flow_g_limit b) The sum of all flows to some interfacegroup at a node is equal to the consistent traffic out of this group.

${\forall{j \in {Nodes}}},{{1 \leq b \leq {h_{j}\text{:}\mspace{14mu} c_{jb}^{out}}} = {\sum\limits_{\substack{i \in \;{Nodes} \\ 1 \leq a \leq h_{i}}}g_{ij}^{ab}}}$

There are 2n+o constraints of this type.

Constraint 4.8 (empty_flow) There are no flows between interconnectionlines.∀ i ε Nodes, j ε Nodes,3≦a≦h_(i),3≦b≦h_(j): g_(ij) ^(ab)=0

There are o² constraints of this type. These constraints are solved bypre-processing, setting some variable to zero.

Constraint 4.9 (inverse_g_flow) The flow between nodes i and j islimited by the flow in the inverse direction.∀ i ε Nodes,j ε Nodes,1≦a≦h _(i),1≦b≦h _(j) : g _(ij) ^(ab) ≦L*g _(ji)^(ba)

There are 2n+o constraints of this form.

Constraint 4.10 (self_flow_net) There is no flow within a network node.∀ i ε Nets: f_(ii)=0

There are n_(n) constraints of this form. These constraints are solvedby pre-processing, setting some variable to zero.

Lemma 4.6 Constraint 4.1 and 4.2 are implied by the constraints 4.5, 4.6and 4.7 and are therefore redundant.

Proof: We show that constraint 4.1 is implied by adding up all equations4.6 for a node i:

$\begin{matrix}{c_{i}^{in}\overset{{Lemma4}{.3}}{=}{\sum\limits_{1 \leq a \leq h_{i}}c_{ia}^{in}}} & (1) \\{\overset{{Constraint4}{.6}}{=}{\sum\limits_{1 \leq a \leq h_{i}}{\sum\limits_{\substack{j \in \mspace{11mu}{Nodes} \\ 1 \leq b \leq h_{j}}}g_{ij}^{ab}}}} & (2) \\{= {\sum\limits_{j \in \mspace{11mu}{Nodes}}{\sum\limits_{\substack{1 \leq a \leq h_{i} \\ 1 \leq b \leq h_{j}}}g_{ij}^{ab}}}} & (3) \\{\overset{{Constraint4}{.5}}{=}{\sum\limits_{j \in {Nodes}}f_{ij}}} & (4)\end{matrix}$4.4 Matrix

² The matrix form of the problem is defined by the set of equations andinequalities

$M*\begin{pmatrix}{\left. \begin{matrix}f_{11} \\f_{12} \\\vdots \\f_{nn}\end{matrix} \right\} n^{2}} \\{\left. \begin{matrix}s_{11} \\s_{12} \\\vdots \\s_{rr}\end{matrix} \right\} r^{2}} \\{\left. \begin{matrix}g_{11}^{11} \\g_{11}^{12} \\\vdots \\g_{11}^{h_{1}h_{1}} \\g_{12}^{11} \\\vdots \\g_{nn}^{h_{n}h_{n}}\end{matrix} \right\}\left( {{2n} + o} \right)^{2}}\end{pmatrix}\begin{matrix} = \\ \leq \end{matrix}\begin{pmatrix}{\left. \begin{matrix}c_{1}^{in} \\\vdots \\c_{n}^{in}\end{matrix} \right\} n} \\{\left. \begin{matrix}c_{1}^{out} \\\vdots \\c_{n}^{out}\end{matrix} \right\} n} \\{\left. \begin{matrix}t_{k_{1}l_{1}} \\\vdots \\t_{k_{m}l_{m}}\end{matrix} \right\} m} \\{\left. \begin{matrix}0 \\\vdots \\0\end{matrix} \right\} r^{2}} \\{\left. \begin{matrix}0 \\\vdots \\0\end{matrix} \right\} n^{2}} \\{{\left. \begin{matrix}c_{11}^{in} \\c_{12}^{in} \\\vdots \\c_{1h_{1}}^{in} \\\vdots \\c_{{nh}_{n}}^{in}\end{matrix} \right\} 2n} + o} \\{{\left. \begin{matrix}c_{11}^{out} \\c_{12}^{out} \\\vdots \\c_{1h_{1}}^{out} \\\vdots \\c_{{nh}_{n}}^{out}\end{matrix} \right\} 2n} + o} \\{{\left. \begin{matrix}0 \\\vdots \\0\end{matrix} \right\} 2n} + 0}\end{pmatrix}$²This section can be skipped on a first reading.

The last 2n+o lines arc inequalities, the rest arc equations. Theconstraints are arranged in the sequence

-   -   1. flow_external(2)    -   2. flow_external(1)    -   3. traffic_contribution_equal    -   4. solution_term(1)    -   5. flow_f_g_sum    -   6. flow_g_limit a    -   7. flow_g_limit b    -   8. inverse_g_flow

The matrix M is defined as

$\quad\begin{pmatrix}\begin{matrix}{ONE}_{1} & {ONE}_{2} & \ldots & {ONE}_{n} \\I & I & \ldots & I \\R_{1} & R_{2} & \ldots & R_{n} \\P_{1} & P_{2} & \ldots & P_{n}\end{matrix} & \begin{matrix}0 \\0 \\0 \\{- I}\end{matrix} & \begin{matrix}0 \\0 \\0 \\0\end{matrix} \\{- I} & 0 & H \\\begin{matrix}0 \\0 \\0\end{matrix} & \; & \begin{matrix}\hat{G} \\\overset{\Cup}{G} \\V\end{matrix}\end{pmatrix}$

The matrix has 2n+m+r²+n²+3(2n+o) lines and n²+r²+(2n+o)² columns. Wenow describe the different sub parts of the matrix.

${ONE}_{x} = \begin{pmatrix}0 & 0 & \ldots & 0 \\\vdots & \vdots & \ldots & \vdots \\0 & 0 & \ldots & 0 \\1 & 1 & \ldots & 1 \\0 & 0 & \ldots & 0 \\\vdots & \vdots & \ldots & \vdots \\0 & 0 & \ldots & 0\end{pmatrix}$where the line of ones is line x. The size of this matrix is n×n.

$I = \begin{pmatrix}1 & 0 & \ldots & 0 \\0 & 1 & \ldots & 0 \\\vdots & \vdots & ⋰ & \vdots \\0 & 0 & \ldots & 1\end{pmatrix}$ $R_{x} = \begin{pmatrix}r_{x1}^{k_{1}l_{1}} & r_{x2}^{k_{1}l_{1}} & \ldots & r_{xn}^{k_{1}l_{1}} \\r_{x1}^{k_{2}l_{2}} & r_{x2}^{k_{2}l_{2}} & \ldots & r_{xn}^{k_{2}l_{2}} \\\vdots & \vdots & ⋰ & \vdots \\r_{x1}^{k_{m}l_{m}} & r_{x2}^{k_{m}l_{m}} & \ldots & r_{xn}^{k_{m}l_{m}}\end{pmatrix}$

The size of this matrix is m×n.

$P_{x} = \begin{pmatrix}p_{x1}^{11} & p_{x2}^{11} & \ldots & p_{xn}^{11} \\p_{x1}^{12} & p_{x2}^{12} & \ldots & p_{xn}^{12} \\\vdots & \vdots & ⋰ & \vdots \\p_{x1}^{rr} & p_{x2}^{rr} & \ldots & p_{xn}^{rr}\end{pmatrix}$

The size of this matrix is r²×n.

Lemma 4.7 We find that P_(x)=P_(y) if pop(x)=pop(y).

-   -   The sub matrix H has the form

$H = \begin{pmatrix}\overset{\overset{h_{1}*h_{1}}{︷}}{111} & \; & \; & 0 \\\; & \overset{\overset{h_{1}*h_{2}}{︷}}{11} & \; & \; \\\; & \; & ⋰ & \; \\0 & \; & \; & \overset{\overset{h_{n}*h_{n}}{︷}}{111}\end{pmatrix}$with n² lines and (2n+o)² columns.

Definition 4.20 Let g_(x): i×a

x be the bijection which maps tuples i×a to an index x.

-   -   Let g_(y): i×j×a×b        y be the bijection which maps tuples i×j×a×b to an index y.    -   Let g_(x) ⁻¹ and g_(y) ⁻¹ be their inverses.

The matrix Ĝ consists of elements ĝ_(xy) which are defined by theformula

${\hat{g}}_{xy} = \left\{ \begin{matrix}1 & {{{if}\mspace{14mu}{g_{x}^{- 1}(x)}} = {{i \times a\mspace{14mu}{and}\mspace{14mu}{g_{y}^{- 1}(y)}} = {i \times j \times a \times b}}} \\0 & {otherwise}\end{matrix} \right.$

The matrix {hacek over (G)} consists of elements {hacek over (g)}_(xy)which are defined by the formula

${\overset{\Cup}{g}}_{xy} = \left\{ \begin{matrix}1 & {{{if}\mspace{14mu}{g_{x}^{- 1}(x)}} = {{j \times b\mspace{14mu}{and}\mspace{14mu}{g_{y}^{- 1}(y)}} = {i \times x \times j \times a \times b}}} \\0 & {otherwise}\end{matrix} \right.$

Finally, the matrix V consists of values 0, 1 and −L. Each line andcolumn contains one entry with value 1 and one entry with value −L. Thevalues 1 are on the main diagonal. Formally, the matrix entries v_(xy)are defined as

$v_{xy} = \left\{ \begin{matrix}1 & {{{if}\mspace{14mu} x} = {{y\mspace{14mu}{and}\mspace{14mu}{g_{y}^{- 1}(x)}} \neq {i \times i \times a \times a}}} \\{- L} & {{{if}\mspace{14mu} x} \neq {y\mspace{14mu}{and}}} \\\; & {\mspace{31mu}{{g_{y}^{- 1}(x)} = {i \times j \times a \times b\mspace{14mu}{and}}}} \\\; & {\mspace{31mu}{{g_{y}^{- 1}(y)} = {j \times i \times b \times a}}} \\0 & {otherwise}\end{matrix} \right.$4.5 Objective Functions

As result of the flow analysis we want to have lower and upper boundsfor all solution variables. This implies the objective functionsmin s_(pq)andmax s_(pq)which are run independently for all pairs of PoPs p and q. This meansthat we have to run 2*r² optimization queries. We can reduce this valueby checking if a particular solution variable s_(pq) has a value 0 inone of the other optimization runs. If that happens, we do not have tocheck it for minimum value.Full Constraint Model Including Error Correction

We now present the fill constraint model including error correction.

5.1 Constants

We start by defining the constants that we use to describe the network,its routing and the traffic loads in the network.

Definition 5.1 Nodes is the set of all nodes in the network. The numberof nodes is denoted by n. Indices i, j, k, k_(x), l and l_(x) refer tonodes.

Definition 5.2 Routers is the set of all routers in the network. Thenumber of nodes is denoted by n_(r).

Definition 5.3 Nets is the set of all network nodes in the network. Thenumber of nodes is denoted by n_(n).

Lemma 5.1 We haveNodes=Routers ∪ NetsandRouters ∩ Nets=∅

Definition 5.4 Pops is the set of all PoPs in the network. The number ofPoPs is denoted by r. Indices p and q refer to PoPs. Each PoP is a setof nodes, and each node belongs to exactly on PoP.

Definition 5.5 The function pop: i

p maps the node index i to a PoP index p.

Definition 5.6 Lines is the set of all node pairs kl so that a directedline exists between nodes k and l in the network. The number of lines inthe network is denoted by m.

Definition 5.7 The value o denotes the number of interconnection linesin the network.

Definition 5.8 The constant h_(i) denotes the number of interface groupsfound at node i. The value h_(i) is equal to the number ofinterconnection lines attached to node i plus 2.

Lemma 5.2 The total number of groups in the network is

${\sum\limits_{i \in {Nodes}}h_{i}} = {{2n} + o}$

Definition 5.9 The constant u_(kl) ^(source) is the observed trafficvolume entering the directed line from node k to node l.

Definition 5.10 The constant u_(kl) ^(dest) is the observed trafficvolume leaving the directed line from node k to node l.

Definition 5.11 The constant a_(ia) ^(in) is the sum of all observedtraffic volumes for external traffic which belongs to group a into nodei.

Definition 5.12 The constant a_(ia) ^(out) is the sum of all observedtraffic volumes for external traffic which belongs to group a out ofnode i.

Definition 5.13 The constant R_(kl) is the set of all node pairs ii sothat the flow from node i to node j is (partially) routed through linekl.

Definition 5.14 The constant r_(ij) ^(kl) is a number between 0 and 1which describes which fraction of the flow between nodes i and j isrouted through line kl. A value 0 indicates that the flow is not routedthrough line kl.

Definition 5.15 The constant p_(ij) ^(pq) is either 0 or 1 and indicateswhether the flow between nodes i and j is a flow between PoPs p and q,i.e. i ε p and j ε q.

Lemma 5.3 We have that

$\begin{matrix}{{\forall i},{j \in {{Nodes}\text{:}}}} & {{\sum\limits_{\underset{q \in {Pops}}{p \in {Pops}}}p_{ij}^{pq}} = 1}\end{matrix}$holds for all nodes i and j.5.2 Variables

We now describe the variables of our model. The first set, the flowvariables, are used to define flows in the network consistently. Thesecond set splits the flows in even more details, so that we can attachmore detailed constraints. But it is the last set, the solutionvariables, that we are really interested in. These solution variablesare simply defined as sums of flow variables.

Definition 5.16 The variable v_(kl) ^(source) is the error correctionapplied to the observed traffic volume entering the directed line fromnode k to node l. This variable may be negative.

-   -   There are m variables of this type.

Definition 5.17 The variable v_(kl) ^(dest) is the error correctionapplied to the observed traffic volume leaving the directed line betweennodes i and j. This variable may be negative.

-   -   There are m variables of this type.

Definition 5.18 The non-negative variable t _(kl) is the consistenttraffic volume on the directed line between nodes i and j.

-   -   There are m variables of this type.

Definition 5.19 The non-negative variable c _(ia) ^(in) is the sum ofall consistent traffic volumes for external traffic which belongs togroup a into node i.

-   -   There are 2n+o variables of this type.

Definition 5.20 The non-negative variable c _(ia) ^(out) is the sum ofall consistent traffic volumes for external traffic which belongs togroup a out of node i.

-   -   There are 2n+o variables of this type.

Definition 5.21 The variable e_(ia) ^(in) is the error correctionapplied to the sum of all consistent traffic volumes for externaltraffic which belongs to group a into node i. This variable may benegative.

-   -   There are 2n+o variables of this type.

Definition 5.22 The variable e_(ia) ^(out) is the error correctionapplied to the sum of all consistent traffic volumes for externaltraffic which belongs to group a out of node i. This variable may benegative.

There are 2n+o variables of this type.

Definition 5.23 The non-negative variable f_(ij) describes the flow fromnode i to node j. These variables are called flow variables.

-   -   There are n² variables of this type.

Definition 5.24 The non-negative variable g_(ij) ^(ab) describes theflow from group a of node i to group b of node j. These variables arecalled flow group variables.

Lemma 5.4 There are 4n²+4on+o² variables g_(ij) ^(ab).

Definition 5.25 The non-negative variable s_(pq) describes the flow fromPoP p to PoP q. These variables are called solution variables.

-   -   There are r² variables of this type.        5.3 Constraints

We now list the constraints used in our model. The names of theconstraints are taken from the “RiskWise II Constraint Model” document.

Constraint 5.1 (interface_error_correction a) The corrected trafficvolume value is equal to the observed value plus the error correctionapplied.∀ i ε Nodes,1≦a≦h _(i) : c _(ia) ^(in) =a _(ia) ^(in) +e _(ia) ^(in)

There are 2n+o constraints of this type.

Constraint 5.2 (interface_error_correction b) The corrected trafficvolume value is equal to the observed value plus the error correctionapplied.∀ i ε Nodes,1≦a≦h _(i) : c _(ia) ^(out) =a _(ia) ^(in) +e _(ia) ^(out)

There are 2n+o constraints of this type.

Constraint 5.3 (interface_error_correction c) The corrected trafficvolume value on a line is equal to the observed value plus the errorcorrection applied.∀ kl ε Lines: t _(kl) =u _(kl) ^(source) +v _(kl) ^(source)

There are m constraints of this type.

Constraint 5.4 (interface_error_correction d) The corrected trafficvolume value on a line is equal to the observed value plus the errorcorrection applied.∀ kl ε Lines: t _(kl) =u _(kl) ^(dest) +v _(kl) ^(dest)

There are m constraints of this type.

Constraint 5.5 (node_octet_sum) The sum of all corrected traffic in to anode is equal to the sum of all corrected traffic out of the node.

$\begin{matrix}{\forall{i \in {{Nodes}\text{:}}}} & {{{\sum\limits_{1 \leq a \leq h_{i}}{\overset{\sim}{c}}_{ia}^{in}} + {\sum\limits_{{ki} \in {Lines}}{\overset{\sim}{t}}_{ki}}} = {{\sum\limits_{1 \leq a \leq h_{i}}{\overset{\sim}{c}}_{ia}^{out}} + {\sum\limits_{{il} \in {Lines}}{\overset{\sim}{t}}_{il}}}}\end{matrix}$

There are n constraints of this type.

Constraint 5.6 (traffic_contribution_equal) The constraint states thatthe sum of all flows through a line is equal to the traffic on the line.

$\begin{matrix}{\forall{{kl} \in {{Lines}\text{:}}}} & {{\sum\limits_{{ij} \in R_{kl}}{r_{ij}^{kl}*f_{ij}}} = {\overset{\sim}{t}}_{kl}}\end{matrix}$

We have m constraints of this type.

Constraint 5.7 (solution_term(1)) The constraint states that the flowbetween two PoPs is equal to the sum of all flows between nodes whichbelong to the first and second PoP.

$\begin{matrix}{{\forall p},{q \in {{Pops}\text{:}}}} & {s_{pq} = {\sum\limits_{\underset{j \in q}{i \in p}}f_{ij}}}\end{matrix}$

We have r² constraints of this type.

Constraint 5.8 (flow_f_g_sum) The total flow between two nodes is equalto the sum of the flows between the interface groups at the nodes.

$\begin{matrix}{{\forall{i \in {Nodes}}},{j \in {{Nodes}\text{:}}}} & {f_{ij} = {\sum\limits_{\underset{1 \leq b \leq h_{j}}{1 \leq a \leq h_{i}}}g_{ij}^{ab}}}\end{matrix}$

There are n² constraints of this type.

Constraint 5.9 (flow_g_limit a) The sum of all flows from an interfacegroup at a node is equal to the consistent traffic into this group.

$\begin{matrix}{{\forall{i \in {Nodes}}},{1 \leq a \leq {h_{i}\text{:}}}} & {{\overset{\sim}{c}}_{ia}^{in} = {\sum\limits_{\underset{1 \leq b \leq h_{j}}{j \in {Nodes}}}g_{ij}^{ab}}}\end{matrix}$

There are 2n+o constraints of this type.

Constraint 5.10 (flow_g_limit b) The sum of all flows to some interfacegroup at a node is equal to the consistent traffic out of this group.

$\begin{matrix}{{\forall{j \in {Nodes}}},{1 \leq b \leq {h_{j}\text{:}}}} & {{\overset{\sim}{c}}_{jb}^{out} = {\sum\limits_{\underset{1 \leq a \leq h_{i}}{i \in {Nodes}}}g_{ij}^{ab}}}\end{matrix}$

There are 2n+o constraints of this type.

Constraint 5.11 (empty_flow) There are no flows between interconnectionlines.∀ i ε Nodes,j ε Nodes,3≦a≦h_(i),3≦b≦h_(j): g_(ij) ^(ab)=0

There are o² constraints of this type. These constraints are solved bypreprocessing, setting some variable to zero.

Constraint 5.12 (inverse_g_flow) The flow between nodes i and j islimited by the flow in the inverse direction.∀ i ε Nodes,j ε Nodes,1≦a≦h _(i),1≦b≦h _(j) : g _(ij) ^(ab) ≦L*g _(ji)^(ba)

There are 2n+o constraints of this form.

Constraint 5.13 (self_flow_net) There is no flow within a network node.∀ i ε Nets: f_(ii)=0

There are n_(n) constraints of this form. These constraints are solvedby preprocessing, setting some variable to zero.

5.4 Objective Functions

The error correction model first performs an optimization to find aminimal error correction which provides us with a consistent data set toperform the flow analysis. The objective function for the errorcorrection is

$\begin{matrix}{{\min\mspace{11mu} b_{1}*{\sum\limits_{i \in {Nodes}}{e_{ia}^{in}}}} + {b_{1}*{\sum\limits_{i \in {Nodes}}{e_{ia}^{out}}}} +} & (5) \\{\mspace{40mu}{{b_{2}*{\sum\limits_{{kl} \in {Lines}}{v_{kl}^{source}}}} + {b_{2}*{\sum\limits_{{kl} \in {Lines}}{v_{kl}^{dest}}}} +}} & (6) \\{\mspace{40mu}{{b_{3}*{\sum\limits_{i \in {Nets}}{\overset{\sim}{c}}_{i\; 1}^{in}}} + {b_{3}*{\sum\limits_{i \in {Nets}}{\overset{\sim}{c}}_{i\; 1}^{out}}}}} & (7) \\{\mspace{40mu}{{b_{4}*{\sum\limits_{\underset{\underset{\underset{1 \leq b \leq 2}{1 \leq a \leq 2}}{j \in {Nodes}}}{i \in {Nodes}}}g_{ij}^{ab}}} +}} & (8) \\{\mspace{40mu}{{b_{5}*{\sum\limits_{\underset{\underset{\underset{3 \leq b \leq h_{j}}{1 \leq a \leq h_{i}}}{j \in {Nodes}}}{i \in {Nodes}}}g_{ij}^{ab}}} +}} & (9) \\{\mspace{40mu}{b_{5}*{\sum\limits_{\underset{\underset{\underset{1 \leq b \leq 2}{3 \leq a \leq h_{i}}}{j \in {Nodes}}}{i \in {Nodes}}}g_{ij}^{ab}}}} & (10)\end{matrix}$

As result of the flow analysis we want to have lower and upper boundsfor all solution variables. This implies the objective functionsmin s_(pq)andmax s_(pq)which are run independently for all pairs of PoPs p and q. This meansthat we have to run 2*r² optimization queries. We can reduce this valueby checking if a particular solution variable s_(pq) has a value 0 inone of the other optimization runs. If that happens, we do not have tocheck it for minimum value.5.5 Use of Variables/Constants

The following table shows the use of the different variable and constanttypes in the constraints and the objective functions.

Variables Constants $v_{kl}^{\begin{matrix}{source} \\{dest}\end{matrix}}\quad$ ${\overset{\sim}{t}}_{kl}$${\overset{\sim}{c}}_{ia}^{\underset{out}{in}}\quad$$e_{ia}^{\underset{out}{in}}\quad$ f_(ij) g_(ij)^(ab) s_(pq)$u_{kl}^{\begin{matrix}{source} \\{dest}\end{matrix}}\quad$ $a_{ia}^{\underset{out}{in}}\quad$ R_(kl)r_(ij)^(kl) p_(ij)^(pq) 5.1 x x x 5.2 x x x 5.3 x x x 5.4 x x x 5.5 x x5.6 x x (x) x 5.7 x x (x) 5.8 x x 5.9 x x 5.10 x x 5.11 x 5.12 x 5.13 xObj1 x x x x Obj2 xOptimizer Model

In the following we describe the constraint model for the traffic flowoptimizer according to one embodiment of the present invention. Themodel is based on the full constraint model including error correction.

For the optimizer model we always study two networks scenarios. One isthe original scenario, in which we have made traffic measurements, theother is a modified one. The modifications can be an arbitrary number ofadditions, changes or deletions from the original network topology orthe network topology. For the modified scenario we want to calculatecertain indicator values, which tell us about the impact of themodification. In the following formalism, all symbols related to themodified scenario are marked with a bar, like so: f _(ij).

6.1 Constants

We start by defining the constants that we use to describe the modifiednetwork, its routing and the traffic loads in the network. We onlydefine those items that we will need in the model.

Definition 6.1 Nodes is the set of all nodes in the network. The numberof nodes is denoted by n. Indices i, j, k, k_(x), l and l_(x) refer tonodes.

Definition 6.2 Routers is the set of all routers in the network. Thenumber of nodes is denoted by n _(n).

Definition 6.3 Nets is the set of all network nodes in the network. Thenumber of nodes is denoted by n _(n).

Lemma 6.1 We haveNodes= Routers∪ NetsandRouters∩ Nets=∅

Definition 6.4 Lines is the set of all node pairs kl so that a directedline exists between nodes k and l in the network. The number of lines inthe network is denoted by m.

Definition 6.5 The constant R _(kl) is the set of all node pairs ij sothat the flow from node i to node j is (partially) routed through linekl.

Definition 6.6 The constant r _(ij) ^(kl) is a number between 0 and 1which describes which fraction of the flow between nodes i and j isrouted through line kl. A value 0 indicates that the flow is not routedthrough line kl.

Definition 6.7 The constant bw _(kl) describes the bandwidth of the linekl.

Definition 6.8 The constant nc _(ij) is the routing cost of a flow fromnode i to node j. The value indicates how much network resources areused to transport the flow from node i to node j.

Lemma 6.2

${\forall i},{{j \in {\overset{\_}{Nodes}\text{:}\mspace{14mu}{\overset{\_}{nc}}_{ij}}} = {\sum\limits_{{kl} \in \overset{\_}{Lines}}{\overset{\_}{r}}_{ij}^{kl}}}$

Lemma 6.3∀ i ε Nodes: nc _(ii)=0∀ i,j ε Nodes,i≠j: nc _(ij)≧1

Observation: Normally, the value nc _(ij) is an integer, but this is notalways the case.

Definition 6.9 The constant w _(ij) is the factor of increase of theflow from node i to node j from the original network to the modifiednetwork.

Definition 6.10 The constant z _(ij) is an additional flow from node ito node j in the modified network.

Definition 6.11 The constant Ū describes the utilization limit for alllines in the network.

Definition 6.12 The constant L is the set of all node pairs ii so thatthe flow from i to j can not be routed in the modified network.

6.2 Variables

Definition 6.13 The non-negative variable t _(kl) is the consistenttraffic volume on the directed line between nodes k and l.

-   -   There are m variables of this type. They are not explicitly        represented in the model.

Definition 6.14 The non-negative variable f _(ij) describes the flowfrom node i to node j. These variables are called flow variables.

-   -   There are n ² variables of this type. They are not explicitly        represented in the model.

Definition 6.15 The non-negative variable d _(kl) is the utilization (inpercent) of the directed line between nodes k and l.

-   -   There are m variables of this type.

Definition 6.16 The non-negative variable D is the overall utilization(in percent) of the modified network.

-   -   There is only one variable of this type.

Definition 6.17 The non-negative variable d _(min) is the minimalutilization of any line in the network.

-   -   There is only one variable of this type.

Definition 6.18 The non-negative variable d _(max) is the maximalutilization of any line in the network.

-   -   There is only one variable of this type.

Definition 6.19 The non-negative variable ō_(kl) describes thepercentage of overloading of line kl. If the line is not overloaded, thevalue is 0.

There are m variables of this type.

Definition 6.20 The non-negative variable h _(kl) describes the volumeof overloaded traffic on line kl. If the line is not overloaded, thevalue is 0.

-   -   There are m variables of this type.

Definition 6.21 The non-negative variable Ō describes the total amountof overloading in the network.

There is only one variable of this type.

Definition 6.22 The non-negative variable H describes the total volumeof overloaded traffic in the network.

-   -   There is only one variable of this type.

Definition 6.23 The non-negative variable Lost describes the volume oftraffic in the original network that can not be routed in the modifiednetwork. If all traffic can be routed, the value is 0.

-   -   There is only one variable of this type.        6.3 Constraints

Constraint 6.1 (traffic_contribution_equal) The constraint states thatthe sum of all flows through a line is equal to the traffic on the line.

${\forall{{kl} \in {\overset{\_}{Lines}\text{:}\mspace{14mu}{\sum\limits_{{ij} \in {\overset{\_}{R}}_{kl}}{{\overset{\_}{r}}_{ij}^{kl}*{\overset{\_}{f}}_{ij}}}}}} = {\overset{\_}{t}}_{kl}$

We have m constraints of this type. They are not explicitly representedin the model.

Constraint 6.2 The constraint states that the utilization is the trafficdivided by the bandwidth.

${\forall{{kl} \in {\overset{\_}{Lines}\text{:}\mspace{14mu}{\overset{\_}{d}}_{kl}}}} = {100*\frac{{\overset{\_}{t}}_{kl}}{b{\overset{\_}{w}}_{kl}}}$

The constraints are not explicitly represented in the model.

Constraint 6.3 The overall utilization is calculated by the totaltraffic divided by the sum of all bandwidth in the network.

$\overset{\_}{D} = {100*\frac{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\overset{\_}{t}}_{kl}}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{b{\overset{\_}{w}}_{kl}}}}$

The constraint is not explicitly represented in the model.

Constraint 6.4 (flow_assumption) The constraint states how flows in theoriginal and in the modified network are related.∀ i,j ε Nodes: f _(ij) = w _(ij) *f _(ij) + z _(ij)

The constraints are not explicitly represented in the model.

Constraint 6.5 The lost traffic is the sum of all flows of the originalnetwork that can not be routed in the modified network.

$\overset{\_}{Lost} = {\sum\limits_{{ij} \in \overset{\_}{L}}f_{ij}}$

Constraint 6.6 The amount of overload for a line is the percentage ofutilization exceeding the utilization limit.∀ kl ε Lines: ō _(kl)=max(0, d _(kl) −Ū)

The constraints are not explicitly represented in the model.

Constraint 6.7 The total amount of overload is the sum of the overloadon each line.

$\overset{\_}{O} = {\sum\limits_{{kl} \in \overset{\_}{Lines}}{\overset{\_}{o}}_{kl}}$

The constraint not explicitly represented in the model.

Constraint 6.8 The volume of overloading of a line is the volume of thetraffic exceeding the utilization limit.

${\forall{{kl} \in {\overset{\_}{Lines}\text{:}\mspace{14mu}{\overset{\_}{h}}_{kl}}}} = {\max\left( {0,{{\overset{\_}{t}}_{kl} - \frac{\overset{\_}{U}*b{\overset{\_}{w}}_{kl}}{100}}} \right)}$

The constraints are not explicitly represented in the model.

Constraint 6.9 The total volume of overloading is equal to the sum ofthe overloaded volumes on each line.

$\overset{\_}{H} = {\sum\limits_{{kl} \in \overset{\_}{Lines}}{\overset{\_}{h}}_{kl}}$

The constraint is not explicitly represented in the model.

Constraint 6.10 The minimal utilization is the minimum of all lineutilizations in the network.

${\overset{\_}{d}}_{\min} = {\min\limits_{{kl} \in \overset{\_}{Lines}}\left\{ d_{kl} \right\}}$

The constraint is not explicitly represented in the model.

Constraint 6.11 The maximal utilization is the maximum of all lineutilizations in the network.

${\overset{\_}{d}}_{\max} = {\max\limits_{{kl} \in \overset{\_}{Lines}}\left\{ d_{kl} \right\}}$

The constraint is not explicitly represented in the model.

6.4 Approximations

Constraints 6.6 to 6.11 are non-linear. Linear approximations can bedefined as follows. Variables defined through the linear approximationare marked with ′. We typically will be able to calculate suchapproximations more easily in our program.

Constraint 6.12 replaces constraint 6.6∀ kl ε Lines: ō′ _(kl) ≧ d _(kl) −Ū  (11)ō′_(kl)≧0  (12)

Constraint 6.13 replaces constraint 6.7

${\overset{\_}{O}}^{\prime} = {\sum\limits_{{kl} \in \overset{\_}{Lines}}{\overset{\_}{o}}_{kl}^{\prime}}$

Constraint 6.14 replaces constraint 6.8

$\begin{matrix}\begin{matrix}{\forall{{kl} \in {\overset{\_}{Lines}\text{:}}}} & {{\overset{\_}{h}}_{kl}^{\prime} \geq {{\overset{\_}{t}}_{kl} - \frac{\overset{\_}{U}*{\overset{\_}{bw}}_{kl}}{100}}}\end{matrix} & (13) \\\begin{matrix}\mspace{104mu} & {{\overset{\_}{h}}_{kl}^{\prime} \geq 0}\end{matrix} & (14)\end{matrix}$

Constraint 6.15 replaces constraint 6.9

${\overset{\_}{H}}^{\prime} = {\sum\limits_{{kl} \in \overset{\_}{Lines}}{\overset{\_}{h}}_{kl}^{\prime}}$

Constraint 6.16 replaces constraint 6.10∀ kl ε Lines: d′_(min)≦ d _(kl)

Constraint 6.17 replaces constraint 6.11∀ kl ε Lines: d′_(max)≧ d _(kl)6.5 General Results

Theorem 6.1 The utilization of a line in the modified network can beexpressed as a linear function of node to node flows in the originalnetwork.

Proof:

$\begin{matrix}\begin{matrix}{\forall{{kl} \in {\overset{\_}{Lines}\text{:}}}} & {{\overset{\_}{d}}_{kl} = {100*\frac{{\overset{\_}{t}}_{kl}}{{\overset{\_}{bw}}_{kl}}}}\end{matrix} & (15) \\{\mspace{191mu}{= {\frac{100}{{\overset{\_}{bw}}_{kl}}{\sum\limits_{{ij} \in {\overset{\_}{R}}_{kl}}{{\overset{\_}{r}}_{ij}^{kl}{\overset{\_}{f}}_{ij}}}}}} & (16) \\{\mspace{191mu}{= {\frac{100}{{\overset{\_}{bw}}_{kl}}{\sum\limits_{{ij} \in {\overset{\_}{R}}_{kl}}{{\overset{\_}{r}}_{ij}^{kl}\left( {{{\overset{\_}{w}}_{ij}*f_{ij}} + {\overset{\_}{z}}_{ij}} \right)}}}}} & (17) \\{\mspace{191mu}{= {\underset{\underset{constant}{︸}}{\sum\limits_{{ij} \in {\overset{\_}{R}}_{kl}}\frac{100*{\overset{\_}{r}}_{ij}^{kl}{\overset{\_}{z}}_{ij}}{{\overset{\_}{bw}}_{kl}}} + {\underset{\underset{constant}{︸}}{\sum\limits_{{ij} \in {\overset{\_}{R}}_{kl}}\frac{100*{\overset{\_}{r}}_{ij}^{kl}{\overset{\_}{w}}_{ij}}{{\overset{\_}{bw}}_{kl}}}f_{ij}}}}} & (18)\end{matrix}$

Theorem 6.2 The overall network utilization in the modified network canbe expressed as a linear function of node to node flows in the originalnetwork.

Proof:

$\begin{matrix}{\overset{\_}{D} = {100*\frac{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\overset{\_}{t}}_{kl}}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\overset{\_}{bw}}_{kl}}}} & (19) \\{\mspace{14mu}{= {\frac{100}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\overset{\_}{bw}}_{kl}}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\sum\limits_{{ij} \in {\overset{\_}{R}}_{kl}}{{\overset{\_}{r}}_{ij}^{kl}\;{\overset{\_}{f}}_{ij}}}}}}} & (20) \\{\mspace{14mu}{= {\frac{100}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\overset{\_}{bw}}_{kl}}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\sum\limits_{{ij} \in {\overset{\_}{R}}_{kl}}{{\overset{\_}{r}}_{ij}^{kl}\;\left( {{{\overset{\_}{w}}_{ij}f_{ij}} + {\overset{\_}{z}}_{ij}} \right)}}}}}} & (21) \\{\mspace{14mu}{= {{\frac{100}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\overset{\_}{bw}}_{kl}}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\sum\limits_{{ij} \in {\overset{\_}{R}}_{kl}}{{\overset{\_}{r}}_{ij}^{kl}\;{\overset{\_}{z}}_{ij}}}}} +}}} & (22) \\{\mspace{45mu}{\frac{100}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\overset{\_}{bw}}_{kl}}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\sum\limits_{{ij} \in {\overset{\_}{R}}_{kl}}{{\overset{\_}{r}}_{ij}^{kl}\;{\overset{\_}{w}}_{ij}f_{ij}}}}}} & \; \\{\mspace{14mu}{= {{\frac{100}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\overset{\_}{bw}}_{kl}}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\sum\limits_{i,{j \in \overset{\_}{Nodes}}}{{\overset{\_}{r}}_{ij}^{kl}\;{\overset{\_}{z}}_{ij}}}}} +}}} & (23) \\{\mspace{45mu}{\frac{100}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\overset{\_}{bw}}_{kl}}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\sum\limits_{i,{j \in \overset{\_}{Nodes}}}{{\overset{\_}{r}}_{ij}^{kl}\;{\overset{\_}{w}}_{ij}f_{ij}}}}}} & \; \\{\mspace{14mu}{= {{\frac{100}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\overset{\_}{bw}}_{kl}}{\sum\limits_{i,{j \in \overset{\_}{Nodes}}}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{{\overset{\_}{r}}_{ij}^{kl}{\overset{\_}{z}}_{ij}}}}} +}}} & (24) \\{\mspace{45mu}{\sum\limits_{i,{j \in \overset{\_}{Nodes}}}{\left( {\frac{100*{\overset{\_}{w}}_{ij}}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\overset{\_}{bw}}_{kl}}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\overset{\_}{r}}_{ij}^{kl}}} \right)*f_{ij}}}} & \; \\{\mspace{14mu}{= {\underset{\underset{constant}{︸}}{\frac{100}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\overset{\_}{bw}}_{kl}}{\sum\limits_{i,{j \in \overset{\_}{Nodes}}}{{\overset{\_}{nc}}_{ij}{\overset{\_}{z}}_{ij}}}} +}}} & (25) \\{\mspace{45mu}{\sum\limits_{i,{j \in \overset{\_}{Nodes}}}{\underset{\underset{constant}{︸}}{\frac{100*{\overset{\_}{w}}_{ij}*{\overset{\_}{nc}}_{ij}}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\overset{\_}{bw}}_{kl}}}*f_{ij}}}} & \;\end{matrix}$

Lemma 6.4

${\sum\limits_{{kl} \in {Lines}}t_{kl}} = {\sum\limits_{i,{j \in {Nodes}}}{{nc}_{ij}*f_{ij}}}$

Intuitively, the lemma states that the traffic in the network iscompletely explained in terms of the node to node flows, and that thecontribution of a flow to the overall traffic is its volume multipliedby the routing cost of the flow.

Theorem 6.3 Assume the same topology and routing in the original and themodified network. If the flows in the modified network are multiples ofthe original flows by the same factor, then we will forecast a growth ofutilization on each line and of the overall utilization by the samefactor.

Formally, assume Nodes= Nodes, Lines= Lines, bw_(kl)= bw _(kl) andr_(ij) ^(kl)= r _(ij) ^(kl). Further assume f _(ij)=x*f_(ij). Then wehave that d _(kl)=x*d_(kl) and D=x*D.

Proof: Under the given assumptions, we have that

$\begin{matrix}{\overset{\_}{D} = {\sum\limits_{i,{j \in \overset{\_}{Nodes}}}{\frac{100*x*{\overset{\_}{nc}}_{ij}}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\overset{\_}{bw}}_{kl}}*f_{ij}}}} & (26) \\{\mspace{14mu}{= {x*100*\frac{\sum\limits_{i,{j \in \overset{\_}{Nodes}}}{{\overset{\_}{nc}}_{ij}*f_{ij}}}{\sum\limits_{{kl} \in \overset{\_}{Lines}}{\overset{\_}{bw}}_{kl}}}}} & (27) \\{\mspace{14mu}{= {x*100*\frac{\sum\limits_{i,{j \in {Nodes}}}{{nc}_{ij}*f_{ij}}}{\sum\limits_{{kl} \in {Lines}}{bw}_{kl}}}}} & (28) \\{\mspace{14mu}{= {x*100*\frac{\sum\limits_{{kl} \in {Lines}}t_{kl}}{\sum\limits_{{kl} \in {Lines}}{bw}_{kl}}}}} & (29) \\{\mspace{14mu}{= {x*D}}} & (30)\end{matrix}$

Similarily, we have that

$\begin{matrix}\begin{matrix}{\forall{{kl} \in {\overset{\_}{Lines}\text{:}}}} & {{\overset{\_}{d}}_{kl} = {100*\frac{{\overset{\_}{t}}_{kl}}{{\overset{\_}{bw}}_{kl}}}}\end{matrix} & (31) \\{\mspace{191mu}{= {100*\frac{\sum\limits_{{ij} \in {\overset{\_}{R}}_{kl}}{{\overset{\_}{r}}_{ij}^{kl}*{\overset{\_}{f}}_{ij}}}{{\overset{\_}{bw}}_{kl}}}}} & (32) \\{\mspace{191mu}{= {100*\frac{\sum\limits_{{ij} \in R_{kl}}{r_{ij}^{kl}*x*f_{ij}}}{{bw}_{kl}}}}} & (33) \\{\mspace{191mu}{= {x*100*\frac{\sum\limits_{{ij} \in R_{kl}}{r_{ij}^{kl}*f_{ij}}}{{bw}_{kl}}}}} & (34) \\{\mspace{191mu}{= {x*100*\frac{t_{kl}}{{bw}_{kl}}}}} & (35) \\{\mspace{191mu}{= {x*d_{kl}}}} & (36)\end{matrix}$

Corollary 6.1 Assume the same topology, routing and flows in theoriginal and in the modified network. Then the forecasted lineutilization will be equal to the corrected utilization in the originalnetworks

Theorem 6.4 Assume the same flows in the original and the modifiednetwork. If nc _(ij)≦nc_(ij) for all flows, then D≦D.

6.6 Approximation Results

We now present some results on the linear approximations defined above.We typically can use them to find either the minimum or maximum value ofthe approximated value, but not to find both.

Theorem 6.5 We can use the linear approximation ō′_(kl) to find theminimum value for the variable ō_(kl).

$\begin{matrix}{\forall{{kl} \in {\overset{\_}{Lines}\text{:}}}} & {{\min\mspace{11mu}{\overset{\_}{o}}_{kl}} = {\min\limits_{LP}\mspace{11mu}{\overset{\_}{o}}_{kl}^{\prime}}}\end{matrix}$

The maximum value of ō′_(kl) is unbounded and therefore useless. Butwecan get the maximal value directly from

Theorem 6.6

$\begin{matrix}{\forall{{kl} \in {\overset{\_}{Lines}\text{:}}}} & {{\max\mspace{14mu}{\overset{\_}{o}}_{kl}} = {\max\limits_{S}\left( {0,{{\max\limits_{LP}\;{\overset{\_}{d}}_{kl}^{\prime}} - U}} \right)}}\end{matrix}$

Theorem 6.7 We can use the linear approximation Ō′ to find the minimumvalue for the variable Ō.

${\min\;\overset{\_}{O}} = {\min\limits_{LP}{{\overset{\_}{O}}^{\prime}.}}$

The maximum value of Ō′ is unbounded and therefore useless.

Theorem 6.8 We can find an upper bound for the maximum value of Ō by thesum of the maxima of the ō_(kl) values.

${\max\;\overset{\_}{O}} \leq {\sum\limits_{{kl} \in \overset{\_}{Lines}}{\max\limits_{LP}{\overset{\_}{o}}_{kl}}}$

The maximum value for ō_(kl) can be determined if we know the maximumvalue for each d _(kl).

Theorem 6.9

${\max\limits_{LP}{\sum\limits_{{kl} \in \overset{\_}{Lines}}\left( {{\overset{\_}{d}}_{kl} - U} \right)}} \leq {\max\;\overset{\_}{O}}$

This is a fairly trivial bound, and typically will be rather weak. Wecan strengthen the bound by restricting the sum to those lines that canbe overloaded in the worst case.

Theorem 6.10

${\max\limits_{LP}{\sum\limits_{{{kl}\;{s.t.\;{\overset{\_}{o}}_{kl}}} > 0}\left( {{\overset{\_}{d}}_{kl} - U} \right)}} \leq {\max\;\overset{\_}{O}}$

This again assumes that we know the maximum value for each of the d_(kl) variables.

We can define similar results for the other approximations:

$\begin{matrix}{{\min\mspace{14mu}{\overset{\_}{d}}_{\max}} = {\min\limits_{LP}{\overset{\_}{d}}_{\max}^{\prime}}} & {{Theorem}\mspace{14mu} 6.11} \\{{\max\mspace{14mu}{\overset{\_}{d}}_{\max}} = {\max\limits_{{kl} \in \overset{\_}{Lines}}\left\{ {\max\limits_{LP}{\overset{\_}{d}}_{kl}} \right\}}} & {{Theorem}\mspace{14mu} 6.12} \\{{\max\mspace{14mu}{\overset{\_}{d}}_{\min}} = {\max\limits_{Lp}{\overset{\_}{d}}_{\min}^{\prime}}} & {{Theorem}\mspace{14mu} 6.13} \\{{\max\mspace{14mu}{\overset{\_}{d}}_{\min}} = {\min\limits_{{kl} \in \overset{\_}{Lines}}\left\{ {\min\limits_{LP}{\overset{\_}{d}}_{kl}} \right\}}} & {{Theorem}\mspace{14mu} 6.14} \\{{\forall{{kl} \in {\overset{\_}{Lines}\text{:}\mspace{14mu}\min\mspace{11mu}{\overset{\_}{h}}_{kl}}}} = {\min\limits_{LP}{\overset{\_}{h}}_{kl}^{\prime}}} & {{Theorem}\mspace{14mu} 6.15} \\{{\min\mspace{14mu}\overset{\_}{H}} = {\min\limits_{LP}{\overset{\_}{H}}^{\prime}}} & {{Theorem}\mspace{14mu} 6.16} \\{{\max\mspace{14mu}\overset{\_}{H}} \leq {\sum\limits_{{kl} \in \overset{\_}{Lines}}{\max\limits_{LP}{\overset{\_}{h}}_{kl}}}} & {{Theorem}\mspace{14mu} 6.17} \\{{\max\limits_{LP}{\sum\limits_{{kl} \in \overset{\_}{Lines}}\left( {{\overset{\_}{t}}_{kl} - \frac{U*b{\overset{\_}{w}}_{kl}}{100}} \right)}} \leq {\max\;\overset{\_}{H}}} & {{Theorem}\mspace{14mu} 6.18} \\{{\max\limits_{LP}{\sum\limits_{{{kl}\;{s.t.{\overset{\_}{o}}_{kl}}} > 0}\left( {{\overset{\_}{t}}_{kl} - \frac{U*b{\overset{\_}{w}}_{kl}}{100}} \right)}} \leq {\max\;\overset{\_}{H}}} & {{Theorem}\mspace{14mu} 6.19}\end{matrix}$

The following tables summarize the approximation results. For eachvalue, they state how many LP queries must be processed. A value mindicates that all line utilizations have to be computed. As a reminder,we also give a brief statement of the meaning for each indicator.

Variable(s) LP queries Meaning min D 1 the minimum overall utilizationof the net- work for any flow distribution max D 1 the maximum overallutilization of the net- work for any flow distribution min O 1 minimumtotal amount of overloading in the best case max O m + 1 approximationonly bounds for the largest percentage of overloading in the worst casescenario min H 1 minimum total volume of overloading in the best casemax H m + 1 approximation only bounds for the largest volume ofoverloading in the worst case scenario min Lost 1 the minimum volume ofall flows of the original network that can not be routed in the modifiedone max Lost 1 the maximum volume of all flows of the original networkthat can not be routed in the modified one L none the flows of theoriginal network that can not be routed in the modified one min d_(max)1 the maximum utilization of any line under the best assumptions aboutthe flow distri- bution max d_(max) m the maximum utilization of anyline for the worst case scenario min d_(min) m the minimum utilizationof any line in the worst case scenario max d_(min) 1 the minimumutilization of any line under the best assumptions about flowdistribution min t _(kl) m minimum traffic volume for each line max t_(kl) m maximum traffic volume for each line min d_(kl) m minimumutilization of each line (follows from t _(kl)) max d_(kl) m maximumutilization of each line (follows from t _(kl)) min ō_(kl) m minimumamount of overloading for each line (follows from t _(kl)) max ō_(kl) mmaximum amount of overloading for each line (follows from t _(kl)) minh_(kl) m minimum volume of overloading for each line (follows from t_(kl)) max h_(kl) m maximum volume of overloading for each line (followsfrom t _(kl))6.7 A Simpler Approximation

If we are satisfied with lower and/or upper bounds on the values for t_(kl:) we can use the following approximation. The traffic on a line klin the modified network can be expressed as

${\overset{\_}{t}}_{kl} = {\sum\limits_{i,{j \in \overset{\_}{Nodes}}}{{\overset{\_}{r}}_{ij}^{kl}*{\overset{\_}{f}}_{ij}}}$

Assuming that the set of nodes and the flows between them have notchanged, we have that

${\overset{\_}{t}}_{kl} = {\sum\limits_{i,{j \in {Nodes}}}{{\overset{\_}{r}}_{ij}^{kl}*f_{ij}}}$

On the other hand, the traffic on a line k′l′ in the original networkcan be expressed as

$t_{k^{\prime}l^{\prime}} = {\sum\limits_{i,{j \in {Nodes}}}{r_{ij}^{k^{\prime}l^{\prime}}*f_{ij}}}$

If for all nodes i and j we have that

${\forall i},{j \in {{Nodes}\text{:}\mspace{14mu}{\overset{\_}{r}}_{ij}^{kl}\begin{matrix} \leq \\ \geq \end{matrix}r_{ij}^{k^{\prime}l^{\prime}}}}$we can bound t _(kl) with t_(k′l′).

${\overset{\_}{t}}_{kl}\begin{matrix} \leq \\ \geq \end{matrix}t_{k^{\prime}l^{\prime}}$

With less justification, we could use the approximation

${\overset{\_}{t}}_{kl}\mspace{11mu}\underset{\geq}{\overset{\leq}{\overset{\;}{\;}}}\mspace{14mu} u_{k^{\prime}l^{\prime}}^{\overset{source}{dest}}$to find a simple a priori bound which only requires routing and somelookup routine, but does not require an LP run.

-   -   This method of approximation can be extended to sums of traffic        on multiple lines in the original network, which can be used to        bound the traffic on a line in the modified network. This may be        useful if we are only interested in whether some line is        overloaded or not, but do not care for actual utilization        numbers.        6.8 Forecast

We now look at the different types of queries we encounter in thedifferent optimizer modules. For each particular form of query, we notewhich variables can be used to answer it.

-   -   Given a topology, traffic data and a flow growth pattern.    -   Possible queries to answer are:

6.8.1 What is the utilization of each line?

Variable(s) Comment min/max d_(kl) needs 2m queries

6.8.2 Are there any lines that are overloaded?

Variable(s) Comment O > 0? needs 2m queries ?

6.8.3 What is the total utilization of the network?

Variable(s) Comment min/max D 2 queries6.9 Resilience

Given a topology, traffic data, a flow growth pattern and a set ofnetwork changes. Possible queries to answer are:

6.9.1 For each change, what is the utilization of each line and whichflows are lost? What is the volume of each flow lost?

Variable(s) Comment min/max d_(kl) needs 2m queries per change Lobtained from routing ∀ ij ∈ L: min/max f_(ij) loss of precisionprobable; 2|L| queries per change

6.9.2 For each change, what is the utilization of each line and whichflows are lost? What is the total volume of the flows lost?

Variable(s) Comment min/max d_(kl) needs 2m queries per change Lobtained from routing min/max Lost 2 queries per change

6.9.3 For each change, what is the utilization of each line and whichflows are lost?

Variable(s) Comment min/max d_(kl) needs 2m queries per change Lobtained from routing

6.9.4 For each change, are there overloaded lines and which flows arelost?

Variable(s) Comment min/max O needs 2m queries per change L obtainedfrom routing

6.9.5 For each change, what is the overall utilization of the network?

Variable(s) Comment min/max D 2 queries per change

6.9.6 Is there a change so that some line is overloaded?

Variable(s) Comment max{max O} m + 1 queries per change

6.9.7 Is there a change so that some flow is lost?

Variable(s) Comment ∪ L obtained from routing

6.9.8 What is the worst case utilization of the network for any of thechanges?

Variable(s) Comment max{max D} 2 queries per change

6.9.9 What is the largest amount of traffic lost for any of the changes?

Variable(s) Comment max{max Lost} 2 queries per change6.10 Planner

Given a topology, traffic data, a flow growth pattern and a set ofpossible network changes. Possible queries to answer are:

6.10.1 For each change, what is the utilization of each line?

Variable(s) Comment min/max d_(kl) needs 2m queries per change

6.10.2 For each change, which lines are overloaded by how much?

Variable(s) Comment min/max ō_(kl) needs 2m queries per change

6.10.3 For each change, are there overloaded lines?

Variable(s) Comment O > 0? needs 2m queries per change ?

6.10.4 Which change results in the smallest amount of overloading?

Variable(s) Comment min{max O} needs 2m queries per change ?

6.10.5 Which change results in the smallest overall utilization?

Variable(s) Comment min{D} 2 queries per change

6.10.6 Which is the subset of n changes which reduces overloading themost?

6.10.7 Which n changes to select one at a time to reduce overloading?

6.11 Resilient Planner

Given a topology, traffic data, a flow growth pattern, a set of possiblenetwork failures and a set of possible network changes. Possible queriesto answer are:

6.11.1 For each change, is the resulting network resilient and what isthe utilization of each line?

6.11.2 For each change, is the resulting network partially resilient andwhat is the utilization of each line?

6.11.3 Which change that does not worsen resilience results in thesmallest amount of overloading?

6.11.4 Which change that does not worsen resilience results in thesmallest overall utilization?

-   -   Partially resilience is defined compared to an existing        situation. A network change is partially resilient compared to        an original network if no additional line becomes overloaded and        no additional traffic is lost.        A Scalable Version of the Constraint Model

In a further embodiment of the present invention, we describe a trafficflow constraint model using additional approximations. In this way themodel is especially useful for large networks.

The models represented so far all have the disadvantage that we needO(n²) node-to-node flow variables. This is a basic limitation thatrestricts the number of networks for which the models can be used. Wenow present a way of relaxing the model so that we need fewer variables.The key idea is to introduce flow variables for only some of thenode-to-node flows and to approximate the remaining flows. This willlead to weaker results, but it can be scaled to larger size by selectingfewer and fewer detailed flows.

Changes against the minimal model are marked with an arrow in themargin.

B.1 Constants

We start by defining the constants that we use to describe the network,its routing and the traffic loads in the network.

Definition B.1 Nodes is the set of all nodes in the network. The numberof nodes is denoted by n. Indices i, j, k, k_(x), l and l_(x), refer tonodes.

Definition B.2 Pops is the set of all PoPs in the network. The number ofPoPs is denoted by r. Indices p and q refer to PoPs. Each PoP is a setof nodes, and each node belongs to exactly one PoP.

Definition B.3 The function pop: i

p maps the node index i to a PoP index p.

Definition B.4 Lines is the set of all node pairs kl so that a directedline exists between nodes k and l in the network. The number of lines inthe network is denoted by m.

Definition B.5 The constant t_(kl) is the consistent traffic volume onthe directed line between from node k to node l.

Definition B.6 The constant c_(i) ^(in) is the sum of all consistenttraffic volumes for external traffic into node i.

Definition B.7 The constant c_(i) ^(out) is the sum of all consistenttraffic volumes for external traffic out of node i.

Definition B.8 The constant R_(kl) is the set of all node pairs ij sothat the flow from node i to node j is (partially) routed through linekl.

Definition B.9 The constant r_(ij) ^(kl) is a number between 0 and 1which describes which fraction of the flow from node i to node j isrouted through line kl. A value 0 indicates that the flow is not routedthrough line kl.

Definition B.10 The constant p_(ij) ^(pq) is either 0 or 1 and indicateswhether the flow from node i to node j is a flow from PoP p to PoP q,i.e. i ε p and j ε q.

Lemma B.1 We have that

$\begin{matrix}{{\forall i},{j \in {{Nodes}\text{:}}}} & {{\sum\limits_{\underset{q \in {Pops}}{p \in {Pops}}}p_{ij}^{pq}} = 1}\end{matrix}$holds for all nodes i and j.

Definition B.11 The constant Taken is a set of node pairs whichrepresents the set of all selected node-to-node flows. We have thatTaken ⊂ Nodes×Nodes. Entries in Taken are represented by node pairs ij.

Definition B.12 The constant Find is a set of PoP pairs which representsthe set of all selected PoP-to-PoP flows. We have that Find ⊂ Pops×Pops.Entries in Taken are represented by PoP pairs pq.

B.2 Variables

We now describe the variables of our model. The first set, the flowvariables, are used to define flows in the network consistently. It isthe second set, the solution variables, that we are really interestedin. These solution variables are defined as sums of flow variables.

Definition B.13 The non-negative variable f_(ij) describes the flow fromnode i to node j with ij ε Taken. These variables are called Howvariables.

There are |Taken| variables of this type.

Definition B.14 The non-negative variable rest_(i) ^(out) describes thesum of all node-to-node flows starting in node i which are not in theTaken set.

There are n variables of this type.

Definition B.15 The non-negative variable rest_(j) ^(in) describes thesum of all node-to-node flows ending in node j which are not in theTaken set.

There are n variables of this type.

Definition B.16 The non-negative variable s_(pq) describes the flow fromPoP p to PoP q with pq ε Find. These variables are called solutionvariables.

There are |Find| variables of this type.

B.3 Constraints

We now list the constraints used in our scalable model. The names of theconstraints are taken from the “RiskWise II Constraint Model” document,but the constraints here are only approximations of the originalconstraints.

Constraint B.1 (flow_external(1)) The constraint states that the sum ofall flows starting in a node is equal to the sum of all external trafficentering the node.

$\begin{matrix}{\forall{i \in {{Nodes}\text{:}}}} & {{{\sum\limits_{\underset{{ij} \in {Taken}}{j \in {Nodes}}}f_{ij}} + {rest}_{i}^{out}} = c_{i}^{in}}\end{matrix}$

We have n constraints of this type.

Constraint B.2 The constraint states that the variable rest_(i) ^(out)of all non-taken flows starting in a node i is 0, if all flows startingin the node are in the Taken set.rest_(i) ^(out)=0 if ∀j ε Nodes: ij ε Taken

The number of constraints of this type depends on the structure of theTaken set. There are at most n constraints of this type.

Constraint B.3 (flow_external(1)) The constraint states that the sum ofall flows ending in a node is equal to the sum of all external trafficleaving the node.

$\begin{matrix}{\forall{j \in {{Nodes}\text{:}}}} & {{{\sum\limits_{\underset{{ij} \in {Taken}}{i \in {Nodes}}}f_{ij}} + {rest}_{j}^{in}} = c_{j}^{out}}\end{matrix}$

We have n constraints of this type.

Constraint B.4 The constraint states that the variable rest_(j) ^(in) ofall non-taken flows ending in a node j is 0, if all flows ending in thenode are in the Taken set.rest_(j) ^(in)=0 if ∀i ε Nodes: ij ε Taken

The number of constraints of this type depends on the structure of theTaken set. There are at most n constraints of this type.

Constraint B.5 (traffic_contribution_equal) The constraint states thatthe sum of all flows through a line can be used to approximate thetraffic on the line.

$\begin{matrix}\begin{matrix}{\forall{{kl} \in {{Lines}\text{:}}}} & {{{\sum\limits_{\underset{{ij} \in {Taken}}{{ij} \in R_{kl}}}{r_{ij}^{kl}*f_{ij}}} + {\sum\limits_{\{{{i|{\forall i}},{j \in {{Nodes}\text{:}\mspace{14mu}{ij}} \in {{Taken}\;\bigvee{ij}} \in R_{kl}}}\}}{rest}_{i}^{out}}} \leq t_{kl}}\end{matrix} \\\begin{matrix}{\forall{{kl} \in {{Lines}\text{:}}}} & {{{\sum\limits_{\underset{{ij} \in {Taken}}{{ij} \in R_{kl}}}{r_{ij}^{kl}*f_{ij}}} + {\sum\limits_{\{{{j|{\forall i}},{j \in {{Nodes}\text{:}\mspace{14mu}{ij}} \in {{Taken}\;\bigvee{ij}} \in R_{kl}}}\}}{rest}_{j}^{in}}} \leq t_{kl}}\end{matrix} \\\begin{matrix}{\forall{{kl} \in {{Lines}\text{:}}}} & {t_{kl} \leq {{\sum\limits_{\underset{{ij} \in {Taken}}{{ij} \in R_{kl}}}{r_{ij}^{kl}*f_{ij}}} + {\sum\limits_{\{{i|{\exists{{ij} \in {R_{kl}\mspace{14mu}{s.t.\mspace{11mu}{ij}}} \notin {Taken}}}}\}}{rest}_{i}^{out}}}}\end{matrix} \\\begin{matrix}{\forall{{kl} \in {{Lines}\text{:}}}} & {t_{kl} \leq {{\sum\limits_{\underset{{ij} \in {Taken}}{{ij} \in R_{kl}}}{r_{ij}^{kl}*f_{ij}}} + {\sum\limits_{\{{j|{\exists{{ij} \in {R_{kl}\mspace{14mu}{s.t.\mspace{11mu}{ij}}} \notin {Taken}}}}\}}{rest}_{j}^{in}}}}\end{matrix}\end{matrix}$

We have m constraints of this type.

Constraint B.6 (solution_term(1)) The constraint states that the flowbetween two PoPs is related to the sum of all flows between nodes whichbelong to the first and second PoP. We restrict ourselves to flows thatare in the Find set of interesting flows.

$\begin{matrix}\begin{matrix}{\forall{{pq} \in {{Find}\text{:}}}} & {{\sum\limits_{\underset{\underset{{ij} \in {Taken}}{j \in q}}{i \in p}}f_{ij}} \leq s_{pq}}\end{matrix} \\\begin{matrix}{\forall{{pq} \in {{Find}\text{:}}}} & {s_{pq} \leq {{\sum\limits_{\underset{\underset{{ij} \in {Taken}}{j \in q}}{i \in p}}f_{ij}} + {\sum\limits_{\{{i|{\exists{i \in {p\mspace{14mu}{s.t.\mspace{11mu}{ij}}} \notin {Taken}}}}\}}{rest}_{i}^{out}}}}\end{matrix}\end{matrix}$

We have |Find| constraints of this type.

B.4 Objective Functions

As result of the flow analysis we want to have lower and upper boundsfor all solution variables. This implies the objective functionsmin s_(pq)andmax s_(pq)which are run independently for all pairs of PoPs pq in Find. This meansthat we have to run 2*|Find| optimization queries. We can reduce thisvalue by checking if a particular solution variable s_(pq) has a value 0in one of the other optimization runs. If that happens, we do not haveto check it for minimum value.B.5 Complexity

The model presented has |Taken|+2n+|Find| variables and at most4n+4m+2*|Find| constraints. For a flow analysis we have to run at most2*|Find| queries.

On the other hand note that we still need to know the r_(ij) ^(kl)values, and for this we need to calculate all node to node routes in thenetwork.

B.6 Optimizer

In analogy to the constraints above we can relax the definitions andconstraints regarding the optimizer model.

B.7 Choosing Taken and Find Sets

The above mode depends on a wise choice of the Taken and Find sets inorder to reduce the loss of accuracy of the model. The a priori boundsfor flows mentioned below help with this.

A Priori Flow Bounds

All flow variables have a lower bound of 0. An upper bound for each flowcan be easily computed as∀i,j ε Nodes: f_(ij)≦t_(kl) if ij ε R_(kl)

A similar bound is found on the external traffic:∀i,j ε Nodes: f_(ij)≦c_(i) ^(in)∀i,j ε Nodes: f_(ij)≦c_(j) ^(out)

These bounds can be trivially extended to the solution variables. Theresulting values may be very weak. Sometimes, a stronger bound is foundbys_(pq)≦t_(kl) if ∀i ε p,j ε q: r_(ij) ^(kl)=1

All these bounds are expressed on the corrected traffic variables. Usingthe uncorrected values instead may lead to misleading results.

Handling Unknown Traffic Values

The error correction model assumes that for each line in the model weknow the observed traffic volume. Unfortunately, this may not always bethe case. A typical example are interfaces which are connected tobackbone lines, but for which we can not collect any traffic data, dueto problems of the data collector or of the network device. In themodels described above, we allowed the observed traffic to be a variableof the model, which would be left uninstantiated in certain situations.These variables would be assigned a value in the error correction,choosing a number which would cause minimal error correction in otherparts of the network.

Alternatively, set the traffic of such unobserved variables to 0 and toallow a free error correction on these interfaces. This will have thesame overall effect on the model, but is simpler and leads to a moreconsistent view of the problem.

Whilst in the above described embodiments linear objective functions aredescribed, it is appreciated that alternatively quadratic objectivefunctions can be used.

Whilst in the above described embodiments, IP networks are described, itis appreciated that the invention may be implemented into other types ofcommunication networks.

Whilst in the above described embodiments the use of flow rates aredescribed, it is appreciated that alternatively the whole calculationcould also be done directly in volume.

Whilst in the above described embodiments the traffic data measurementsare obtained using the SNMP, it is appreciated that alternatively othermethods can be used.

Whilst in the above described embodiments a specific set of traffic datameasurements obtained from the router and router interfaces aredescribed, it is appreciated that other measurements can be used insteador in addition to the measurements described.

It is to be understood that the embodiments described above arepreferred embodiments only. Namely, various features may be omitted,modified or substituted by equivalents without department from the scopeof the present invention, which is defined in the accompanying claims.

1. A method of calculating traffic values in a communications network,the communications network comprising a plurality of nodes, the nodesbeing connected to one another by links, the method comprising: (a)obtaining at a management system, traffic data measurements through saidnodes or links in an initial scenario as input data; (b) deriving at themanagement system, a traffic flow model for a modified scenario using aplurality of constraints describing the interdependency of said initialto said modified scenario and derived from the network topology andnetwork behavior of the initial network; and (c) calculating at themanagement system, upper and lower bounds of traffic values for saidmodified scenario from said traffic flow model using said input data,wherein calculating comprises solving a linear programming problem bycomputing the upper and lower bounds of the traffic values; wherein saidmodified scenario comprises one or more of: a modified network topology,modified routing algorithm parameters, modified traffic engineeringconstraints, or modified traffic load compared to the initial scenario.2. A method according to claim 1, wherein step (b) further comprisesperforming a routing procedure in said modified scenario.
 3. A methodaccording to claim 1, further comprising the step of verifying theconsistency of the measured input data using information about thenetwork topology or the network behaviour of the initial scenario.
 4. Amethod according to claim 1, wherein said input data are corrected ifinconsistencies are detected.
 5. The method of claim 4, furthercomprising solving a linear programming problem with a linear objectivefunction to minimize the data traffic reconciliation (error correction).6. The method of claim 4, further comprising solving a linearprogramming problem with a non-linear objective function to minimize thedata traffic reconciliation (error correction).
 7. A method according toclaim 1, wherein in step (b) the traffic values in the modified scenarioare expressed as a linear function of node-to-node flows in the initialscenario.
 8. A method according to claim 1, wherein traffic values whichare not affected by the modifications from said initial to said modifiedscenario are equal to the corresponding input data or corrected inputdata of the initial scenario.
 9. A method according to claim 1, whereinsaid traffic values comprise utilization, overload, or traffic volumevalues.
 10. A method according to claim 1, wherein said constraintscomprise linear constraints.
 11. A method according to claim 1, whereinsaid constraints comprise non-linear constraints.
 12. A method accordingto claim 11, wherein a linear approximation to a non-linear constraintis used.
 13. A method according to claim 1, wherein solving a linearprogramming problem comprises: selecting a first and a second node;solving a first linear programming problem by computing the upper boundof traffic flow values from the first to the second node; and solving asecond linear programming problem by computing the lower bound oftraffic flow values from the first to the second set of nodes.
 14. Themethod of claim 1, further comprising repeating step (a) at differenttimes or at periodic intervals.
 15. A method of calculating trafficvalues in a communications network, the communications networkingcomprising a plurality of nodes, the nodes being connected to oneanother by links, the method comprising: (a) obtaining at a managementsystem, data traffic data measurements through said nodes or links in aninitial scenario as input data; (b) considering a modified scenario; (c)defining one or more solution variables for said modified scenario; (d)determining at the management system, constraints between traffic flowsthrough said links and nodes to describe the network topology andbehavior of the network, said constraints derived from a networktopology and network behavior based on the initial scenario; and (e)deriving at the management system, a traffic flow model using said inputdata and said relations for calculating said solution variables, whereinsaid solution variable is expressed as a linear function of one or morenode-to-node flows of the network; wherein said modified scenariocomprises one or more of: a modified network topology, modified routingalgorithm parameters, modified traffic engineering constraints, ormodified traffic load compared to the initial scenario.
 16. A methodaccording to claim 15, wherein step (b) further comprises performing arouting process for said modified scenario.
 17. The method of claim 15,wherein said constraints in step (b) include relations among datatraffic rates based on the definition of network protocol (such as IP,TCP, UDP) which defines the network behaviour.
 18. A method according toclaim 15, wherein said constraints comprising any of the followingconstraints: routing-based constraints link-based constraints node-basedconstraints error-based constraints.
 19. The method of claim 15, whereinsaid constraints relate to any of the following: the size of datapackets used in the network; relationship between the number of datapackets and the data traffic volume; constraints determined by therouting protocol used in the network; the relationship between incomingand outgoing data traffic at said plurality of nodes; the relationshipbetween the data traffic at both ends of each link; the relationshipbetween the data traffic along said routes and the data traffic inputinto and output from the network.
 20. A method according to claim 15,further comprising repeating stages (b), (c) and (d) for differentmodifications of said network.
 21. A method according to claim 20,further comprising calculating a minimal and a maximal value for eachsolution variable taking into account one or more of said differentmodifications.
 22. A method according to claim 20, further comprisingcalculating one consistent solution for all solution variables takinginto account all said modifications.
 23. An apparatus for calculatingtraffic values in a communications network, the communications networkcomprising a plurality of nodes, the nodes being connected to oneanother by links, the apparatus comprising: a processor for: (a)obtaining traffic data measurements through said nodes or links in aninitial scenario as input data; (b) deriving a traffic flow model for amodified scenario using a plurality of constraints describing theinterdependency of said initial to said modified scenario and derivedfrom the network topology and network behavior of the initial network;and (c) calculating upper and lower bounds of traffic values for saidmodified scenario from said traffic flow model using said input data,wherein calculating comprises solving a linear programming problem bycomputing the upper and lower bounds of the traffic values; and memoryfor storing said traffic data measurements and said traffic flow model;wherein said modified scenario comprises one or more of: a modifiednetwork topology, modified routing algorithm parameters, modifiedtraffic engineering constraints, or modified traffic load compared tothe initial scenario.
 24. A network management system for managing anetwork comprising a plurality of nodes, the nodes being interconnectedby links, the network management system comprising: a processor for: (a)obtaining data traffic data measurements through said nodes or links inan initial scenario as input data; (b) considering a modified scenario;(c) defining one or more solution variables for said modified scenario;(d) determining constraints between traffic flows through said links andnodes to describe the network topology and behavior of the network, saidconstraints derived from a network topology and network behavior basedon the initial scenario; (e) deriving a traffic flow model using saidinput data and said relations for calculating said solution variables,wherein said solution variable is expressed as a linear function of oneor more node-to-node flows of the network; and memory for storing saiddata traffic measurements and said traffic flow model; wherein saidmodified scenario comprises one or more of: a modified network topology,modified routing algorithm parameters, modified traffic engineeringconstraints, or modified traffic load compared to the initial scenario.25. A non-transitory computer readable medium encoded with a computerprogram for calculating traffic values in a communication network, thecommunication network comprising a plurality of nodes connected to oneanother by links, the computer program comprising: code for obtainingtraffic data measurements through said nodes or links in an initialscenario as input data; code for deriving a traffic flow model for amodified scenario using a plurality of constraints describing theinterdependency of said initial to said modified scenario and derivedfrom the network topology and network behavior of the initial network;and code for calculating values or upper and lower bounds of trafficvalues for said modified scenario from said traffic flow model usingsaid input data, wherein code for calculating comprises code for solvinga linear programming problem by computing the upper and lower bounds ofthe traffic values; wherein said modified scenario comprises one or moreof: a modified network topology, modified routing algorithm parameters,modified traffic engineering constraints, or modified traffic loadcompared to the initial scenario.